zoukankan      html  css  js  c++  java
  • 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格式,在打开时就会出错。(血的教训啊...害的俺浪费了好几个小时...)
    *)

    没事,别怕,这是签名→→┃ 青山幽谷笛声扬,白鹤振羽任翱翔。往事前尘随风逝,携手云峰隐仙乡。 ┃
  • 相关阅读:
    软件架构的认识
    软件需求十步走读书笔记3
    软件需求十步走读书笔记2
    系统利益相关者描述案例
    项目目标文档
    《需求工程-软件建模与分析》读书笔记2
    《需求工程-软件建模与分析》读书笔记1
    专业实训题目需求分析
    2015年秋季个人阅读计划
    课程改进意见
  • 原文地址:https://www.cnblogs.com/dabiao/p/1789033.html
Copyright © 2011-2022 走看看