在工资管理应用中需要把工资发放信息导出到EXCEL文件中给银行发工资。数据库为SQL SERVER2000,开发环境为DELPHI7+OFFICE2000。到处的信息包括姓名、银行帐号和金额,其中银行帐号的名称为Account,数据类型为varchar(20),内容为一串数字如201245763356896。查询所用的SQL语句为:“select Name,Account,Realpay from ”。
导出到EXCEL文件的函数片段为:
while not data.Eof do begin
  for j:=0 to data.FieldCount-1 do begin
     sheet.cells[i,j+1]:=data.Fields[j].AsString;
  end;
  data.Next;
  i:=i+1;
end;
程序产生EXCEL文件正常,但EXCEL把Account的内容当成了数值类型来处理,单元格内匀以科学表示法显示,而且数值与原来文本值有误差。请教一下对于这类很长一串数字的字符串怎样使EXCEL把它们当成是文本字符串而不是数值?

解决方案 »

  1.   

    坐边加 ' 实验过没有
    我在VFP中是这样做的
    可能DELPHI也一样EXCEL的自动功能很是讨厌
      

  2.   

    應該在代碼前面加個 
    sheet.cells[i,j+1]:=''''  + data.Fields[j].AsString;
    就可
      

  3.   

    查一下能否对EXCEL属性进行设置
      

  4.   

    delphi对EXCEL的控制我了解得很有限,不知道怎样控制。在EXCEL里我看过功能设置没发现在哪里改。
      

  5.   

    sheet.cells[i,j+1]:='''  + data.Fields[j].AsString;看清楚了吗?三个'''。
      

  6.   

    三个'''的话编译时就报错,Unterminated string
      

  7.   

    这样:
    sheet.cells[i,j+1].NumberFormat = "@"
      

  8.   

    前两天刚做这个
    设置该列的自定义格式(文本格式显示)就可以了sheet.cells[i,j+1].NumberFormat:= '@';把该列设置成文本格式显示,那么就不会被Excel当成数值来处理而采用科学记数法了