//方便经典的Delphi 6/7 调用使用,输出速度杠杠的
//代码在Delphi XE下编译,必须先装Dev套件哦
library exportxlsx;
{ Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters. }
uses
Winapi.Windows,
System.SysUtils,
System.Classes,
vcl.Graphics,
Forms,
dxCore,
dxCoreClasses,
dxHashUtils,
dxSpreadSheetCore,
dxSpreadSheetCoreHistory,
dxSpreadSheetConditionalFormatting,
dxSpreadSheetConditionalFormattingRules,
dxSpreadSheetClasses,
dxSpreadSheetContainers,
dxSpreadSheetFormulas,
dxSpreadSheetHyperlinks,
dxSpreadSheetFunctions,
cxGraphics,
dxSpreadSheetGraphics,
dxSpreadSheetPrinting,
dxSpreadSheetTypes,
dxSpreadSheetUtils,
dxBarBuiltInMenu,
dxSpreadSheet;
{$R *.res}
var
xlsDoc: TdxSpreadSheet=nil;
ASheet: TdxSpreadSheetTableView;
xlsFileName:string;
DefaultBorder:Boolean;
docCodePage:Cardinal=0;
function CreateExportFileA(AFilename,ATitle:PAnsiChar;ACodePage:Cardinal):LongInt;stdcall;
var
sn:string;
begin
docCodePage:=ACodePage;
if Assigned(xlsDoc) then
begin
xlsDoc.Free;
xlsDoc:=nil;
end;
try
xlsFileName:=dxAnsiStringToString(afilename);
xlsDoc:=TdxSpreadSheet.Create(nil);
xlsdoc.Visible:=false;
ASheet:=xlsdoc.Sheets[0] as TdxSpreadSheetTableView;
sn:=dxAnsiStringToString(atitle,ACodePage);
if sn='' then
sn:=extractfilename(xlsFilename);
Asheet.Caption:=changefileext(sn,'');
xlsdoc.DefaultCellStyle.Font.Name:='Tahoma';
xlsdoc.DefaultCellStyle.Font.Size:=11;
result:=LongInt(Pointer(xlsDoc));
except
result:=0;
end;
end;
function CreateExportFile(AFilename,ATitle:PChar;ACodePage:Cardinal):LongInt;stdcall;
var
sn:string;
begin
docCodePage:=ACodePage;
if Assigned(xlsDoc) then
begin
xlsDoc.Free;
xlsDoc:=nil;
end;
try
xlsFileName:=strpas(afilename);
xlsDoc:=TdxSpreadSheet.Create(nil);
xlsdoc.Visible:=false;
ASheet:=xlsdoc.Sheets[0] as TdxSpreadSheetTableView;
sn:=strpas(atitle);
if sn='' then
sn:=extractfilename(xlsFilename);
Asheet.Caption:=changefileext(sn,'');
// xlsdoc.DefaultCellStyle.Font.Charset
xlsdoc.DefaultCellStyle.Font.Name:='Tahoma';
xlsdoc.DefaultCellStyle.Font.Size:=11;
result:=LongInt(Pointer(xlsDoc));
except
result:=0;
end;
end;
procedure BeginExport;stdcall;
begin
ASheet.BeginUpdate;
end;
procedure EndExport;stdcall;
begin
&