• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi操作Excel(2)---Stringgrid导出到Excel

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近编了一个小软件,需要将Stringgrid中的内容导出到Excel中。

由于使用的是Delphi2010 + Office2010,中间有点小曲折,现把代码贴出来,供参考。

代码
procedure TFormMain.btn3Click(Sender: TObject);
var
ExcelApp,workbook,sheet:Variant;
begin
dlgSavedlg1.Filter :
= 'Excel2007格式文件|*.xlsx|Excel2003格式文件|*.xls';
ExcelApp:
=UnAssigned();
ExcelApp :
= CreateOleObject('Excel.application'); (* 创建一个Excel的OLE对象,使用OLE去创建Excel文件时,需要uses ComObj *)
workbook :
= ExcelApp.WorkBooks.Add; (* 创建一个WorkBook *)
Sheet :
= ExcelApp.Sheets[1]; (* 创建一个Sheet变量 *)
for i := 0 to 21 do
begin
Sheet.cells[i
+1,1].value := strngrd1.Cells[1,i]; (* 将Delphi的Stringgrid中的内容保存到Excel的Sheet中去 *)
Sheet.cells[i
+1,2].value := strngrd1.Cells[2,i];
Sheet.cells[i
+1,3].value := strngrd1.Cells[3,i];
end;

(*ExcelApp.Visible := True;*) (* 将这句话取消注释,就会弹出Excel *)


(*ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035;*) (* 这就话可以设置行高 *)
ExcelApp.ActiveSheet.Columns[
1].Columnwidth := 20; (* 设置列宽,网上的很多资料都把Columnwidth 写成了 ColumnsWidth,多写了一个s,误导了很多人 *)
ExcelApp.ActiveSheet.Columns[
2].Columnwidth := 20;
ExcelApp.ActiveSheet.Columns[
3].Columnwidth := 20;

if dlgSavedlg1.Execute then (* 如果点击了保存对话框的"保存"按键的话,将当前活动的Workbook保存到SaveDialog指定的位置 *)
begin
ExcelApp.ActiveWorkbook.saveas(dlgSavedlg1.FileName);
end
else (* 如果点击了保存对话框的"取消"按键的话,放弃存盘,这句话一定要加上,否则,在点击"取消"按键时,会出现问题 *)
ExcelApp.ActiveWorkBook.Saved :
= True;

workbook.Close;
(* 最后,将WorkSheet关闭 *)
ExcelApp.quit;
(* 退出ExcelApp *)
ExcelApp :
= unassigned; (* 使用unassigned时,要uses Variants *)
end;

(* 由于使用创建OLE对象的方法去创建Excel时,是使用的您电脑上安装的Excel,因此,生成的文件的格式和您电脑上安装的Excel的版本有关系。
比如:我的电脑上安装的是office2010,如果将Excel文件保存为xls格式,在打开时就会出错。(血的教训啊...害的俺浪费了好几个小时...)
*)


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[转]Delphi调用cmd并取得输出文本发布时间:2022-07-18
下一篇:
DelphiXE里的StrPas要注意哦发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap