回 帖 发 新 帖 刷新版面

主题:DbGrid导出excel的问题

我用DELPHI编了一个程序,加了个导出EXCEL的功能,但是导出资料的时候,在EXCEL中看的时候出现以下问题:十五位数的可以正确,十八位的后面三位全部变成了三个零,但是如果某人的身份证后面带个字母X的话又可以完全正确的显示出来。请问这是什么问题导致的。如何解决?
NumberFormatLocal := '@'也设置成文本了.

回复列表 (共2个回复)

沙发

导出时用的两个函数
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 ;

板凳

事情解决,在查询身份证时加"'",然后导出后就不会出显那种情况了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册