在Delphi中读取Excel文件,使用CreateOleObject的方式挺讨厌的,一直搞不定,输出了文件之后,总会在系统中打开一个Excel,就算Quit也不行,一个程序中使用的多了,还不定搞出什么事情来。狠狠心找个其它的东西来代替,于是发现了XlsReadWriteII。
使用之后发现这个东西真不错,简单好用。不管是读还是写均轻松搞定。
直接添加对应版本的.bpl文件(默认安装在C盘,参考路径:C:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl\XLSRWII5_DXE7.bpl)和库路径(SrcXLS文件夹和子文件夹Obj)。
特点:
用来读取Excel,Access的控件
读写任何单元值
数字型、字符型、布尔型以及错误型。但是你了解日期和时间型单元吗?在Excel中没有这样的单元。Excel是和Delphi一样的方式来存储日期和时间的,即浮点型。那是什么制造了日期或时间值啦,是格式化。
完全支持公式。你可以使用和Excel一样的函数,也支持对外部工作簿引用的公式,你甚至可以从外部引用读取结果。
与操作Delphi的TStringGrid一样的方式操作单元格,或则通过给单元格命名,比如:”D7”
根据单元格的规则以字符串格式读取单元值
根据你的需求格式化单元
格式化很简单。通过获取单元格,你就可以操作单元的格式属性。例如:XLSReadWriteII.Sheet[n].Cell[Col,Row].FontSize := 12;
你也可以对域进行格式化,比如设置边框。
支持所有的Excel格式选项
合并单元格
操作所有的打印选项
选择页面大小,设置边距
设置标题和页脚,包括格式码。
定义打印区域
设置分页符
XLSReadWriteII完全支持Unicode
所有的字符型都是宽字符型。你完全不必担心非英语字符。
控件
你可以插入控件以及定义他们的源和目的单元
绘图
插入所有种类的绘图,从简单的线条到AutoShapes
多行文本和文本框
创建和编辑文本框以及多行文本
图表
创建和Excel中一样选项的图表
复制/移动/删除
可以以Excel一样的行为复制、移动和删除单元
行列也可以像单元一样复制和移动
支持工作簿之间的复制和移动
可以复制整个工作簿
使用命名的域/单元
你可以在你想要的任何地方命名
通过命名访问单元格,例如:XLS.NameAsFloat['MyCell'] := 202.5;
支持指定、内置的名称
支持所有超链接类型
网页和E-mail地址
本地文件
服务器文件
工作薄引用
加密文档
你可以读写加密文件。条件是你需要知道文件的密码。
计算
可计算单元以及整个工作薄
计算引擎将依据单元进行计算。
可读取引用的外部工作薄。这通过一个特殊的快速查询程序进行执行
Rich Text单元
为了轻松地创建多字体格式的单元,单元可以以RTF格式读写
VBA宏
可以读写文件中的宏,使用XLSReadWriteII可以为控件比如:按钮、组合框等添加宏
导入及导出
从下列导入数据…
Open Office Calc文档
CSV文件以及其他可以自动识别分隔符、小数分隔符和文本引用字符的文本文件
HTML表格(<TABLE>标签)
数据库
导出数据为…
CSV文件
HTML文件
其他
自动过滤
单元验证
有条件的格式
合并单元
PaintCell方法:将单元内容渲染到TCanvas对象的
XLSReadWriteII包还包含下列组件:
从任何数据库中导入数据到工作薄
工作薄导出为HTML文件