首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

DataSet导出Excel格式有关问题

2013-03-01 
DataSet导出Excel格式问题导出函数代码如下:procedureDataSetToExcel(DataSet:TDataSet)varstr:stringi:

DataSet导出Excel格式问题
导出函数代码如下:


procedure  DataSetToExcel(DataSet:TDataSet);
var
  str:string;
  i:Integer;
  excelapp,sheet:Variant;
begin
  str:='';
  DataSet.DisableControls;
  for i:=0 to DataSet.FieldCount-1 do
    str:= str + DataSet.Fields[i].DisplayLabel +  char(9);
    str:= str + #13;
    DataSet.First;
    while not(DataSet.eof) do
    begin
      for i:= 0 to DataSet.FieldCount-1 do
        str:= str+DataSet.Fields[i].AsString + char(9);
        str:= str + #13;
        DataSet.next;
    end;
  DataSet.EnableControls;

  clipboard.Clear;
  Clipboard.Open;
  Clipboard.AsText:=str;
  Clipboard.Close;
  excelapp:=createoleobject('excel.application');
  excelapp.workbooks.add(1);  
  sheet:=excelapp.workbooks[1].worksheets[1];
  sheet.name:='Sheet1';
//sheet.cells.NumberFormatLocal := '@';
  sheet.paste;
  Clipboard.Clear;
  sheet.Columns.AutoFit;
  sheet.UsedRange.Select;
  excelapp.visible:=true;
end;

以上代码导出正常,就是有一个问题:

如果有字段值为 1/2 导出到Excel后就显示为 1月2日;3/4  导出到Excel后就显示为 3月4日,
我用 sheet.cells.NumberFormatLocal := '@'; 设定, 如果值为数值的话导出Excel后全部显示为64, 请问如何才能正常显示?

谢谢!
[解决办法]
//@后面加个空格试试
sheet.cells.NumberFormatLocal := '@ ';
[解决办法]
http://bbs.csdn.net/topics/320210721

热点排行