主题:DbGrid导出excel的问题
qrxinyu
[专家分:130] 发布于 2008-09-25 19:09:00
我用DELPHI编了一个程序,加了个导出EXCEL的功能,但是导出资料的时候,在EXCEL中看的时候出现以下问题:十五位数的可以正确,十八位的后面三位全部变成了三个零,但是如果某人的身份证后面带个字母X的话又可以完全正确的显示出来。请问这是什么问题导致的。如何解决?
NumberFormatLocal := '@'也设置成文本了.
回复列表 (共2个回复)
沙发
qrxinyu [专家分:130] 发布于 2008-09-25 19:12:00
导出时用的两个函数
function TdxDBGirdToExcel.CreateExcel: Variant;
begin
FExcel := CreateOleObject('Excel.Application');
FExcel.Workbooks.Add();
FExcel.visible := true;
FCurrentWorkBook :=FExcel.Workbooks[1];
FCurrentSheet :=FExcel.Workbooks[1].Sheets[1];
result := FExcel;
end;
Function TdxDBGirdToExcel.dxGirdToExcel(FdxGird:TdxDBGrid;StrFormat:array of Integer):Boolean ;
Var i : Integer ;
Begin
FdxGird.CopyAllToClipboard ;
For i:=0 to high(StrFormat)-1 do
Begin
FCurrentSheet.Columns[StrFormat[i+1]].NumberFormatLocal := '@';
End ;
FCurrentSheet.Rows[1].Interior.ColorIndex := 15 ;
FCurrentSheet.cells[1,1].select;
FCurrentSheet.Paste;
FCurrentSheet.rows[2].delete;
End ;
板凳
qrxinyu [专家分:130] 发布于 2008-09-27 13:06:00
事情解决,在查询身份证时加"'",然后导出后就不会出显那种情况了!
我来回复