读书人

DataSet导出Excel格式有关问题

发布时间: 2013-03-01 18:33:02 作者: rapoo

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

读书人网 >.NET

热点推荐