我在delphi里面查询出的内容要导出到excel,现在遇到了一个问题,我的dbgrid有货物规格那一列,但是如果货物规格是分数,比如1/2,那导出到excel后就会自动变换为日期,显示成了1月2日,不知道有没有什么方法杜绝这种情况发生,下面是我导出excel的代码。procedure TDataM_Pub.ExportToExcel(DBGridEh:TDBGridEh;Savedialog:TSaveDialog;filename:string);
var
str:string;
i,j:Integer;
excelapp,sheet:Variant;
begin
if SaveDialog.Execute then
begin
str:='';
DBGridEh.DataSource.DataSet.DisableControls; //关闭数据集连接
for i:=0 to DBGridEh.DataSource.DataSet.FieldCount-1 do //i从0到DBGrid列数-1
begin
str:=str+DBGridEh.DataSource.DataSet.fields[i].DisplayLabel+char(9);//excel第一行为DBGrid字段名
end;
str:=str+#13;
DBGridEh.DataSource.DataSet.First;
while not(DBGridEh.DataSource.DataSet.eof) do //当数据集没有到最后一行
begin
for i:=0 to DBGridEh.DataSource.DataSet.RecordCount-1 do//从0到数据集的记录数-1
begin
for j:=0 to DBGridEh.DataSource.DataSet.FieldCount-1 do//i从0到数据集的字段数-1
begin
str:=str+DBGridEh.DataSource.DataSet.Fields[j].AsString+char(9);//字符串添加字段值
end;
str:=str+#13;
DBGridEh.DataSource.DataSet.next;
Application.ProcessMessages;
end; end;//end while DBGridEh.DataSource.DataSet.EnableControls; clipboard.Clear;//清空剪切板
Clipboard.Open; //打开剪切板
Clipboard.AsText:=str;//粘贴到剪切板
Clipboard.Close;
excelapp:=createoleobject('excel.application');//创建excel表
excelapp.workbooks.add(1); // excelapp.workbooks.add(-4167);
sheet:=excelapp.workbooks[1].worksheets[1];
sheet.name:='sheet1';
sheet.paste;
Clipboard.Clear;
Sheet.rows[1].font.color:=clred;
// sheet.columns.font.Name:='宋体';
// sheet.columns.font.size:=9;
//sheet.Columns.AutoFit;
//excelapp.visible:=true;
sheet.saveas(SaveDialog.FileName);
excelapp.quit;
excelapp:= unassigned;
end;
end;
var
str:string;
i,j:Integer;
excelapp,sheet:Variant;
begin
if SaveDialog.Execute then
begin
str:='';
DBGridEh.DataSource.DataSet.DisableControls; //关闭数据集连接
for i:=0 to DBGridEh.DataSource.DataSet.FieldCount-1 do //i从0到DBGrid列数-1
begin
str:=str+DBGridEh.DataSource.DataSet.fields[i].DisplayLabel+char(9);//excel第一行为DBGrid字段名
end;
str:=str+#13;
DBGridEh.DataSource.DataSet.First;
while not(DBGridEh.DataSource.DataSet.eof) do //当数据集没有到最后一行
begin
for i:=0 to DBGridEh.DataSource.DataSet.RecordCount-1 do//从0到数据集的记录数-1
begin
for j:=0 to DBGridEh.DataSource.DataSet.FieldCount-1 do//i从0到数据集的字段数-1
begin
str:=str+DBGridEh.DataSource.DataSet.Fields[j].AsString+char(9);//字符串添加字段值
end;
str:=str+#13;
DBGridEh.DataSource.DataSet.next;
Application.ProcessMessages;
end; end;//end while DBGridEh.DataSource.DataSet.EnableControls; clipboard.Clear;//清空剪切板
Clipboard.Open; //打开剪切板
Clipboard.AsText:=str;//粘贴到剪切板
Clipboard.Close;
excelapp:=createoleobject('excel.application');//创建excel表
excelapp.workbooks.add(1); // excelapp.workbooks.add(-4167);
sheet:=excelapp.workbooks[1].worksheets[1];
sheet.name:='sheet1';
sheet.paste;
Clipboard.Clear;
Sheet.rows[1].font.color:=clred;
// sheet.columns.font.Name:='宋体';
// sheet.columns.font.size:=9;
//sheet.Columns.AutoFit;
//excelapp.visible:=true;
sheet.saveas(SaveDialog.FileName);
excelapp.quit;
excelapp:= unassigned;
end;
end;
解决方案 »
- delphi 应用层 调试问题
- 汇编语言题:判断字符串中有无空格,有空格则删除
- delphi高手请进来看看代码那里有问题
- 超难问题!!!!! 如何知道自己的 "打印" 进程 成功执行完毕 ?? ???????急!!!!!!!!
- 关于隐藏和重现进程程序、隐藏和重现系统托盘图标
- 如何将excel表中的数据,取出来,导入到SQL Server 2000数据库中去!
- DELPHI如何实现在代理服务器上映射端口???
- 请问:在ToolBar上加SpeedButton时,SpeedButton正中会出现一条竖线。如何消除这条竖线??
- 又是送分题,关于报表,答对一定给分
- 如何在Delphi6.0中安装Dephi 3.0的VCL控件
- 再问IDHTTP idhttp access violation at问题
- 图像旋转问题
将货物规格那列强制转换成文本格式?