报表的打印是每个项目都会遇到的问题。由于报表格式要求五花八门,往往又同时要求打印格式可方便调整。作为一种替代方法,可以将需要打印的报表导出到Excel/Word,打印交给Office去吧。由于Office的普及度较高,用户比较熟悉,也容易接受。

下面主要是在开发中涉及到的在Delphi中写Excel文件方面的问题,直接用代码行来举例说明。测试所用Excel的版本为9.0,即Excel2000

1、总的思路是将EXCEL作为一个OLE对象来操作。

//在单元use部分加上:ComObj, Excel2000,并作如下定义:
var ExcelApp, Book, Sheet, Range: Variant;

2、Excel程序对象的操作/设置
//创建
ExcelApp := CreateOleObject( 'Excel.Application' );
//设置Excel窗口可见
ExcelApp.Visible := True;
 
//增加一个工作簿
ExcelApp.WorkBooks.Add;
Book := ExcelApp.Workbooks[1];
 
//增加一个工作表
Book.Worksheets.Add;
Sheet := Book.Worksheets[1];
 //保存文件
Sheet.SaveAs(FileName);
 
//退出Excel与释出
if not VarIsEmpty(ExcelApp) then
  ExcelApp.Quit;
ExcelApp := Unassigned;
 
3、区域操作/设置
//引用
Range := Sheet.Range['A2:B3'];
//合并
Range.Merge;
//赋值
Range.Value := ''赋值';
//格式
Range.NumberFormatLocal := '@';               //数字格式设置为文本
Range.NumberFormatLocal := 'yyyy-m-d';    //数字格式设置为yyyy-m-d日期
Range.HorizontalAlignment := xlCenter;       //水平对齐
Range.VerticalAlignment := xlCenter;            //垂直对齐
Range.Font.Name := '黑体';                             //字体
Range.Font.Size := 18;
Range.Font.Bold := true;
//边框
Range.Borders[xlEdgeLeft].LineStyle := xlContinuous;     //左
Range.Borders[xlEdgeLeft].Weight := xlThin;
Range.Borders[xlEdgeRight].LineStyle := xlContinuous;  //右
Range.Borders[xlEdgeRight].Weight := xlThin;
Range.Borders[xlEdgeTop].LineStyle := xlContinuous;    //上
Range.Borders[xlEdgeTop].Weight := xlThin;
Range.Borders[xlEdgeBottom].LineStyle := xlContinuous;         //下
Range.Borders[xlEdgeBottom].Weight := xlThin;
Range.Borders[xlInsideHorizontal].LineStyle := xlContinuous;  //内竖
Range.Borders[xlInsideHorizontal].Weight := xlThin;
Range.Borders[xlInsideVertical].LineStyle := xlContinuous;      //内横
Range.Borders[xlInsideVertical].Weight := xlThin;
 
4、单元格操作/设置
//单元格采用行、列号引用,设 row、col为行、列号
//赋值
Sheet.Cells(row, col) := '赋值';
//设置格式同区域,改成这样来引用
Sheet.Cells.Item[row, col].HorizontalAlignment := xlCenter;
 
5、其它
//行高、列宽自适应
Sheet.Cells.Rows.AutoFit;
Sheet.Cells.Columns.AutoFit;

在Delphi中通过OLE方式写Excel文件的更多相关文章

  1. Delphi中使用OLE方法操作Excel

    首先创建 Excel 对象,使用ComObj: var ExcelApp: Variant; ExcelApp := CreateOleObject( ′Excel.Application′ ); 注 ...

  2. Delphi中使用python脚本读取Excel数据

    Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

  3. springMVC中使用POI方式导出excel至客户端、服务器实例

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 这里的方法支持导出excel至项目所在服务器,或导 ...

  4. 使用Python xlwt写excel文件

    如果需要使用Python写Excel文件,首先下载或者安装xlwt. pip install xlwt 下面的这些demo应该可以帮助开发者快速上手使用xlwt写Excel文件: 创建工作簿(work ...

  5. Qt中将QTableView中的数据导出为Excel文件

    如果你在做一个报表类的程序,可能将内容导出为Excel文件是一项必须的功能.之前使用MFC的时候我就写过一个类,用于将grid中的数据导出为Excel文件.在使用了QtSql模块后,我很容易的将这个类 ...

  6. 【转载】WPS通过设置密码的方式对Excel文件加密

    有时候Excel文件中可能包含一些敏感数据,此时希望对Excel文件进行加入密码的形式进行加密保护,在WPS软件和Office Excel软件中都支持对Excel文件进行密码保护,设置了密码保护的Ex ...

  7. delphi中单独编译pas生成dcu文件

    delphi中单独编译pas生成dcu文件 在网上下载了一个带源码的组件,结果碰到提示说缺少xxx.dcu.一看它的目录下确实没有,那能不能生成一个呢? 当然可以! 方法是使用delphi的安装目录\ ...

  8. Django中从本地上传excel文件并将数据存储到数据库

    Django中从本地上传excel文件并将数据存储到数据库 一.前端界面 <div class="page-container"> <form action=&q ...

  9. 利用freemarker+SAX解析xml的方式对excel文件字段校验

    利用freemarker对参数进行校验这篇文章主要用到的技术点: 自定义注解的使用反射机制SAX解析xmlFreemarker的运用我们在工作中经常需要上传excel文件,然后在对文件中的字段进行校验 ...

随机推荐

  1. WPF 事件触发命令

    方法一使用mvvmlight: xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Int ...

  2. dos下edit编辑器的快捷命令一览

    Home Move cursor to the beginning of the line currently on. End Move cursor to the end of the line c ...

  3. Gitlab+Jenkins学习之路(七)之发布PHP项目

    使用git+jenkins实现持续集成 Step1:构建一个自由风格的php-deploy Step2:Gernal配置,丢弃旧的构建,防止jenkins构建较多之后变臃肿 Step3:源码管理:这里 ...

  4. 菜鸟vimer成长记——第0章、我眼中的vim学习

    这是一系统总结vim的学习文章,记录我自己学习vim的过程和感悟.与此同时也想分享出来给大家,欢迎大家互相讨论和学习. 在这里假设你们对vim已经有了一些基本的认识或者说已经使用过几个月的vim.该系 ...

  5. js获取字符串字节数方法小结

    js获取字符串字节数的方法.分享给大家供大家参考.具体如下: 大家都知道,获取字符串的长度可用length来获取,那么获取这段字符串的字节数呢? 英文字母肯定lenght和字节数都一样:都是1而中文l ...

  6. ASP.NET MVC Bundles 之学习笔记

    在网页中,我们经常需要引用大量的javascript和css文件,在加上许多javascript库都包含debug版和经过压缩的release版(比如jquery),不仅麻烦还很容易引起混乱,所以AS ...

  7. Eclipse的汉化问题

    最近看了很多我周围的同学,也都是刚开始接触Eclipse,但是都头疼于eclipse的汉化问题. 好在的是,Eclipse的汉化比较简单,不用到网上自己下载汉化包,而且关于这个软件的汉化也非常的多,所 ...

  8. cadence allegro16.6 pcb文件转pads pcb文件方法教程

    在pcb设计工作中,有时会被要求将pcb文件转成其他软件的格式,pcb Allegro装Pads的方法如下. 在转换的过程中我们需要用到三种软件,ad.pads.allegro.转换的流程是:alle ...

  9. Jmeter+ant+jenkins接口自动化测试 平台搭建(二)

    一.依赖文件配置 1.在ant目录C:\apache-ant-1.10.5下新建一个demo文件夹,并将jmeter测试脚本放在该文件夹中 2.将\apache-jmeter-3.3\extras下面 ...

  10. day01_概念

    1 网络分类: 1 按照范围: - 局域网:范围很小的网络,如一间办公室,一个公司 - 城域网:大致城市范围内的网络,半径几公里到几十公里 - 广域网:比城域网范围更大的 2 网络衡量标准 1 传输速 ...