DBGridEh 导出 WPS 的问题???
以下是导出WPS或EXCEL的代码:
procedure P_DBGridToExcelFile(DBGridEh1:TDBGridEh);
var
ExpClass:TDBGridEhExportClass;
Ext:String;
begin
with MainForm do
begin
SaveDialog1.FileName := 'MyFileName';
if SaveDialog1.Execute then
begin
case SaveDialog1.FilterIndex of
6: begin ExpClass := TDBGridEhExportAsText; Ext := 'et'; end; //WPS 的格式
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;
end;
end;
如果选择导出为EXCEL格式,数据格式是没有任何问题的.
如果选择导出WPS格式(*.et),则导出后如果是字符格式,WPS回把字符前面的0去掉,如果数值很大,则会变成科学计数法.
但是如果类格式选择为 ExpClass := TDBGridEhExportAsXLS ,可以按DBGRIDEH显示的格式一样的导出来,但打开
WPS时会提示"打开旧版本数据可能丢失",打开后双击某个单元格,数据又变成科学计数法了.请问有什么办法解决?