来源:http://blog.csdn.net/chelen_jak/article/details/7069095

Delphi  控制Excel
(一) 使用动态创建的方法
  首先创建 Excel 对象,使用ComObj:
  var ExcelApp: Variant;
  ExcelApp := CreateOleObject( 'Excel.Application' );
1) 显示当前窗口:
  ExcelApp.Visible := True;
2) 更改 Excel 标题栏:
  ExcelApp.Caption := '应用程序调用 Microsoft Excel';
3) 添加新工作簿:
  ExcelApp.WorkBooks.Add;
4) 打开已存在的工作簿:
  ExcelApp.WorkBooks.Open( 'C:\Excel\Demo.xls' );
5) 设置第2个工作表为活动工作表:
  ExcelApp.WorkSheets[2].Activate;  或 ExcelApp.WorksSheets[ 'Sheet2' ].Activate;
6) 给单元格赋值:
  ExcelApp.Cells[1,4].Value := '第一行第四列';
7) 设置指定列的宽度(单位:字符个数),以第一列为例:
  ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;
8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
  ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
9) 在第8行之前插入分页符:
  ExcelApp.WorkSheets[1].Rows.PageBreak := 1;
10) 在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;
11) 指定边框线宽度:
  ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
  1-左    2-右   3-顶    4-底   5-斜( \ )     6-斜( / )
12) 清除第一行第四列单元格公式:
  ExcelApp.ActiveSheet.Cells[1,4].ClearContents;
13) 设置第一行字体属性:ExcelApp.ActiveSheet.Rows[1].Font.Name := '隶书';
  ExcelApp.ActiveSheet.Rows[1].Font.Color  := clBlue;
  ExcelApp.ActiveSheet.Rows[1].Font.Bold   := True;
  ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;
14) 进行页面设置:
  a.页眉:
     ExcelApp.ActiveSheet.PageSetup.CenterHeader := '报表演示';
  b.页脚:
     ExcelApp.ActiveSheet.PageSetup.CenterFooter := '第&P页';
  c.页眉到顶端边距2cm:
     ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
  d.页脚到底端边距3cm:
     ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
  e.顶边距2cm:
     ExcelApp.ActiveSheet.PageSetup.TopMargin := 2/0.035;
  f.底边距2cm:
     ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
  g.左边距2cm:
     ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
  h.右边距2cm:
     ExcelApp.ActiveSheet.PageSetup.RightMargin := 2/0.035;
  i.页面水平居中:
     ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
  j.页面垂直居中:
     ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
  k.打印单元格网线:
     ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;
15) 拷贝操作:
  a.拷贝整个工作表:   ExcelApp.ActiveSheet.Used.Range.Copy;
  b.拷贝指定区域:   ExcelApp.ActiveSheet.Range[ 'A1:E2' ].Copy;
  c.从A1位置开始粘贴:   ExcelApp.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
  d.从文件尾部开始粘贴:   ExcelApp.ActiveSheet.Range.PasteSpecial;
16) 插入一行或一列:
  a. ExcelApp.ActiveSheet.Rows[2].Insert;
  b. ExcelApp.ActiveSheet.Columns[1].Insert;
17) 删除一行或一列:
  a. ExcelApp.ActiveSheet.Rows[2].Delete;
  b. ExcelApp.ActiveSheet.Columns[1].Delete;
18) 打印预览工作表:
  ExcelApp.ActiveSheet.PrintPreview;
19) 打印输出工作表:
  ExcelApp.ActiveSheet.PrintOut;
20) 工作表保存:
  if not ExcelApp.ActiveWorkBook.Saved then
    ExcelApp.ActiveSheet.PrintPreview;
21) 工作表另存为:
  ExcelApp.ActiveWorkBook.SaveAs( 'C:\Excel\Demo1.xls' );
22) 放弃存盘:
  ExcelApp.ActiveWorkBook.Saved := True;
23) 关闭工作簿:
  ExcelApp.WorkBooks.Close;
24) 退出 Excel:
  ExcelApp.Quit;

(二) 使用Delphi 控件方法
在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。 
  1)  打开Excel 
    ExcelApplication1.Connect;
  2) 显示当前窗口:
    ExcelApplication1.Visible[0]:=True;
  3) 更改 Excel 标题栏:
    ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';
  4) 添加新工作簿:
    ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
  5) 添加新工作表:
    var Temp_Worksheet: _WorkSheet;
    begin
      Temp_Worksheet:=ExcelWorkbook1.
      WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
      ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);

    End;
  6) 打开已存在的工作簿:
    ExcelApplication1.Workbooks.Open (c:\a.xls
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
     EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)
  7) 设置第2个工作表为活动工作表:
    ExcelApplication1.WorkSheets[2].Activate;  或
    ExcelApplication1.WorksSheets[ 'Sheet2' ].Activate;
  8) 给单元格赋值:  
    ExcelApplication1.Cells[1,4].Value := '第一行第四列';
  9) 设置指定列的宽度(单位:字符个数),以第一列为例:
    ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth := 5;
  10) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
    ExcelApplication1.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
  11) 在第8行之前插入分页符:
    ExcelApplication1.WorkSheets[1].Rows.PageBreak := 1;
  12) 在第8列之前删除分页符:
    ExcelApplication1.ActiveSheet.Columns[4].PageBreak := 0;
  13) 指定边框线宽度:
    ExcelApplication1.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
    1-左    2-右   3-顶    4-底   5-斜( \ )     6-斜( / )
  14) 清除第一行第四列单元格公式:
    ExcelApplication1.ActiveSheet.Cells[1,4].ClearContents;
  15) 设置第一行字体属性:
    ExcelApplication1.ActiveSheet.Rows[1].Font.Name := '隶书';
    ExcelApplication1.ActiveSheet.Rows[1].Font.Color  := clBlue;
    ExcelApplication1.ActiveSheet.Rows[1].Font.Bold   := True;
    ExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine := True;
  16) 进行页面设置:
    a.页眉:
       ExcelApplication1.ActiveSheet.PageSetup.CenterHeader := '报表演示';
    b.页脚:
       ExcelApplication1.ActiveSheet.PageSetup.CenterFooter := '第&P页';
    c.页眉到顶端边距2cm:
       ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
    d.页脚到底端边距3cm:
       ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
    e.顶边距2cm:
       ExcelApplication1.ActiveSheet.PageSetup.TopMargin := 2/0.035;
    f.底边距2cm:
       ExcelApplication1.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
    g.左边距2cm:
       ExcelApplication1.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
    h.右边距2cm:
       ExcelApplication1.ActiveSheet.PageSetup.RightMargin := 2/0.035;
    i.页面水平居中:
       ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
    j.页面垂直居中:
       ExcelApplication1.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
    k.打印单元格网线:
       ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines := True;
  17) 拷贝操作:
    a.拷贝整个工作表:
       ExcelApplication1.ActiveSheet.Used.Range.Copy;
    b.拷贝指定区域:
       ExcelApplication1.ActiveSheet.Range[ 'A1:E2' ].Copy;
    c.从A1位置开始粘贴:
       ExcelApplication1.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
    d.从文件尾部开始粘贴:
       ExcelApplication1.ActiveSheet.Range.PasteSpecial;
  18) 插入一行或一列:
    a. ExcelApplication1.ActiveSheet.Rows[2].Insert;
    b. ExcelApplication1.ActiveSheet.Columns[1].Insert;
  19) 删除一行或一列:
    a. ExcelApplication1.ActiveSheet.Rows[2].Delete;
    b. ExcelApplication1.ActiveSheet.Columns[1].Delete;
  20) 打印预览工作表:
    ExcelApplication1.ActiveSheet.PrintPreview;
  21) 打印输出工作表:
    ExcelApplication1.ActiveSheet.PrintOut;
  22) 工作表保存:
    if not ExcelApplication1.ActiveWorkBook.Saved then
      ExcelApplication1.ActiveSheet.PrintPreview;
  23) 工作表另存为:
    ExcelApplication1.SaveAs( 'C:\Excel\Demo1.xls' );
  24) 放弃存盘:
    ExcelApplication1.ActiveWorkBook.Saved := True;
  25) 关闭工作簿:
    ExcelApplication1.WorkBooks.Close;
  26) 退出 Excel:
    ExcelApplication1.Quit;
    ExcelApplication1.Disconnect;

Excel OLE控制的更多相关文章

  1. 魔改——MFC SDI 支持 内嵌 EXCEL OLE

    ==================================声明================================== 本文版权归作者所有 未经作者授权 请勿转载 保留法律追究的 ...

  2. python xlwt写excel格式控制 颜色、模式、编码、背景色

    关于写excel的格式控制,比如颜色等等 import xlwt from datetime import datetime font0 = xlwt.Font() font0.name = 'Tim ...

  3. 用Delphi将数据导入到Excel并控制Excel

    一.调用Excel的方法:一般情况下有两种方法调用Excel:1.  直接使用Delphi自带的组件:在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWo ...

  4. SAP EXCEL OLE常用方法和属性

    1.创建application: CREATE OBJECT excel 'EXCEL.APPLICATION'. 2.设置显示模式,为1前台运行,为0时表示为后台运行. . 3.设置为不弹消息框(在 ...

  5. C++使用OLE高速读写EXCEL的源码

    我的代码参考的地方是这儿,再次感谢原作者 http://blog.csdn.net/gyssoft/archive/2007/04/29/1592104.aspx 我根据自己的需要做了整理,干净了一点 ...

  6. NX二次开发-OLE/COM向EXCEL表格中插入图片

    今晚有一个兄弟问我怎么往EXCEL里插入图片(加工程序单中需要插入图片),这个我之前也没弄过,回复了他一句不知道,后来刚刚干完游戏吃完鸡,就去VC++的书上翻了翻,还真的被我翻到了.VC++的方法往E ...

  7. VS2010 MFC对Excel的操作

    这是帮别人做项目遇到的一个问题,的那个是纠结了老长时间,本以为是一件很轻松的事... 首先,这里采用了OLE来对Excel进行操作,网上其实有大把的例子,虽然都可以运行,但是并不能满足项目要求,其实我 ...

  8. 在 Server 端存取 Excel 檔案的利器:NPOI Library

    转处 http://msdn.microsoft.com/zh-tw/ee818993.aspx Codeplex 軟體套件(Package)資訊 套件名稱 NPOI 作者 tonyqus, huse ...

  9. C++ builder 操作Excel方法(据网上资料整理)

    c++ builder 操作Excel方法,下面是从网上找到的一些不错的方法,学习一下: 用OLE操作Excel(目前最全的资料)(04.2.19更新) 本文档部分资料来自互联网,大部分是ccrun( ...

随机推荐

  1. win8 使用notepad++写C代码

    1. 安装mingw,这里有个不错的教程 http://www.metsky.com/archives/588.html 2. 在notepad++里做设置, 安装nppexec: nppexec-& ...

  2. H5的draggable属性和jqueryUI.sortable

    拖放 拖放是一种常见的特性,即抓取对象以后拖到另一个位置. 一.HTML5 新特性 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. Event On Event Handler 描述 d ...

  3. bzoj 3196 Tyvj 1730 二逼平衡树【线段树 套 splay】

    四舍五入就是个暴力. 对于线段树的每个区间都开一棵按权值排序的splay 对于第二个操作,二分一下,每次查询mid的排名,复杂度 $ O(nlog(n)^{3}) $ 其余的操作都是$ O(nlog( ...

  4. bzoj 2087: [Poi2010]Sheep【凸包+极角排序+dp】

    首先处理处理出来哪些边能连--能把羊分成两个偶数部分的,实现是在凸包上枚举极点,极角排序,枚举凸包上点对判断两边羊的个数的奇偶即可,设可以连边为v[i][j]=1 然后设f[i][j]为从i到j个凸包 ...

  5. bzoj 1912: [Apio2010]patrol 巡逻【不是dp是枚举+堆】

    我是智障系列.用了及其麻烦的方法= =其实树形sp就能解决 设直径长度+1为len(环长) 首先k=1,直接连直径两端就好,答案是2*n-len 然后对于k=2,正常人的做法是树形dp:先求直径,然后 ...

  6. Luogu P1462 通往奥格瑞玛的道路【二分/最短路】

    题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...

  7. Hdu 5379 Mahjong tree (dfs + 组合数)

    题目链接: Hdu 5379 Mahjong tree 题目描述: 给出一个有n个节点的树,以节点1为根节点.问在满足兄弟节点连续 以及 子树包含节点连续 的条件下,有多少种编号方案给树上的n个点编号 ...

  8. 牛客小白月赛5-D-阶乘(求n内每个数的阶乘相乘后尾数为0的个数)

    题目描述 输入描述: 输入数据共一行,一个正整数n,意义如“问题描述”. 输出描述: 输出一行描述答案:一个正整数k,表示S的末尾有k个0 输入例子: 10 输出例子: 7 --> 示例1 输入 ...

  9. hihocoder offer收割编程练习赛12 B 一面砖墙

    思路: 就是求哪个长度出现的次数最多. 实现: #include <iostream> #include <cstdio> #include <algorithm> ...

  10. 对gridview绑定数据的操作方法及自定义显示内容

    GridView中Eval和 Bind 的使用 Eval:绑定的是只读数据的显示:Bind:可以绑定只读数据也可以绑定更新数据,Bind方法还把字段和控件的绑定属性联系起来,使得 数据控件(比如Gri ...