procedure TRES_CQ_JBPG_F.E1Click(Sender: TObject); begin inherited; if qry_jb.IsEmpty then begin MessageBox(Handle,'加班數據不能為空!!!','數據導出...',MB_OK+ MB_ICONWARNING); Exit; end else begin if dlgSave1.Execute then begin ExportGridToExcel(dlgSave1.FileName,cxGrid2,True,True,False,'XLS'); MessageBox(Handle,'加班數據成功導出!!!','數據導出...',MB_OK+ MB_ICONWARNING); end; end; end;
谢谢回复! to:xjq2003转成csv的确可以,但利用Excel打开会出现格式丢失的问题,如导出00100,打开后可能只能看到100to:kye_jufeiExportGridToExcel 是DBGridEh里的方法吗?我怎么没有找到。我导出的代码是: var ExpClass:TDBGridEhExportClass; Ext:String; begin SaveDialog1.FileName := ''; if SaveDialog1.Execute then begin case SaveDialog1.FilterIndex of 5: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end; 2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end; 3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end; 4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end; 1: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end; else ExpClass := nil; Ext := ''; end; if ExpClass <> nil then begin if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <> UpperCase(Ext) then SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext; SaveDBGridEhToExportFile(ExpClass,dbgrideh1, SaveDialog1.FileName,true); end; end;
if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <> UpperCase(Ext) then建议改为:if sametext(ExtractFileExt(SaveDialog1.FileName),Ext)=false then 另外,你导出DBGridEn到Excel用的是什么方法?是不是用法上有误?无代码无真相。
文件名后缀。csv
格式:
1,2,3
4,5,6
7,8,9这个办法速度很快!
begin
inherited;
if qry_jb.IsEmpty then
begin
MessageBox(Handle,'加班數據不能為空!!!','數據導出...',MB_OK+ MB_ICONWARNING);
Exit;
end else
begin
if dlgSave1.Execute then
begin
ExportGridToExcel(dlgSave1.FileName,cxGrid2,True,True,False,'XLS');
MessageBox(Handle,'加班數據成功導出!!!','數據導出...',MB_OK+ MB_ICONWARNING);
end;
end;
end;
to:xjq2003转成csv的确可以,但利用Excel打开会出现格式丢失的问题,如导出00100,打开后可能只能看到100to:kye_jufeiExportGridToExcel 是DBGridEh里的方法吗?我怎么没有找到。我导出的代码是:
var ExpClass:TDBGridEhExportClass;
Ext:String;
begin
SaveDialog1.FileName := '';
if SaveDialog1.Execute then
begin
case SaveDialog1.FilterIndex of
5: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
1: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <>
UpperCase(Ext) then
SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;
SaveDBGridEhToExportFile(ExpClass,dbgrideh1,
SaveDialog1.FileName,true);
end;
end;
OLEdb能不能达到你的目的
我没试过
UpperCase(Ext) then建议改为:if sametext(ExtractFileExt(SaveDialog1.FileName),Ext)=false then
另外,你导出DBGridEn到Excel用的是什么方法?是不是用法上有误?无代码无真相。