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


    最近编了一个小软件,需要将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格式,在打开时就会出错。(血的教训啊...害的俺浪费了好几个小时...)
    *)

    没事,别怕,这是签名→→┃ 青山幽谷笛声扬,白鹤振羽任翱翔。往事前尘随风逝,携手云峰隐仙乡。 ┃
  • 相关阅读:
    【EXCEL】乱数関数集合
    PHP 获取当前时间前52周 12个月 4个季度
    python 清理没有过期时间的redis
    yii2 使用mongo查询(包含like查询)
    crontab 时间详解
    安装 cronsun
    php的加密&解密 (压缩数据) gzcompress & gzuncompress
    三数之和
    贪心算法解决集合覆盖问题
    KMP算法实现字符串匹配
  • 原文地址:https://www.cnblogs.com/dabiao/p/1789033.html
Copyright © 2020-2023  润新知