报表的打印是每个项目都会遇到的问题。由于报表格式要求五花八门,往往又同时要求打印格式可方便调整。作为一种替代方法,可以将需要打印的报表导出到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. 传输层tcp协议以及scoket套字节方法

    一.传输层 1.传输层的由来: 网络层的IP帮我们区分子网 以太网的Mac帮我们找到主机 所以通过IP和Mac找到了一台特定的主机 如何找到该特定主机的应用程序呢? 答案是通过端口,端口即应用程序与网 ...

  2. 约束4:唯一约束,Check约束和null

    大家知道,关系型数据库的逻辑运算的结果是三值型的,TRUE,FALSE和UNKNOWN,特别是,NULL值和任何值都不相等,任何值和NULL的比较,返回的逻辑结果都是unknown.而NULL值在唯一 ...

  3. Node JS World

    Node JS World Environment tested on Ubuntu Install nvm/node/npm/yarn nvm : node version manager node ...

  4. 【10.13】Bug Bounty Write-up 总结

    今天惯例邮箱收到了Twitter的邮件提醒有新的post,这种邮件每天都能收到几封,正好看到一个Bug Bounty的write up,比较感兴趣,看起来也在我的理解范围之内,这里对这篇write u ...

  5. Netty源码分析第7章(编码器和写数据)---->第4节: 刷新buffer队列

    Netty源码分析第七章: 编码器和写数据 第四节: 刷新buffer队列 上一小节学习了writeAndFlush的write方法, 这一小节我们剖析flush方法 通过前面的学习我们知道, flu ...

  6. Azure web site和web job的config文件加密方式

    1.分析 由于Azure Web AppService平台的特殊性,所以在C#中原先的config加密方法DataProtectionConfigurationProvider和RSAProtecte ...

  7. Redis勒索事件爆发,如何避免从删库到跑路?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云数据库 TencentDB发表于云+社区专栏 9月10日下午,又一起规模化利用Redis未授权访问漏洞攻击数据库的事件发生,此次 ...

  8. Vue.js 相关知识(组件)

    1. 组件介绍 组件(component),vue.js最强大的功能之一 作用:封装可重用的代码,通常一个组件就是一个功能体,便于在多个地方都能调用该功能体 根组件:我们实例化的Vue对象就是一个组件 ...

  9. zip命令详解

    基础命令学习目录首页 好文链接:https://www.cnblogs.com/yinzhengjie/p/6247833.html 原文链接:https://www.cnblogs.com/ferr ...

  10. Python更新库

    查看系统里过期的python库,可以用pip命令 [root@vnode33 sim-enb-sgi]# pip list #列出所有安装的库 Package Version ------------ ...