如何使用XlsReadWriteII在Delphi中读取Excel文件

XLSReadWriteII v5.20.01a for Delphi XE5 x32下载地址:

http://download.csdn.net/detail/wozengcong/6878409

XLSReadWriteII v5.10.25 Cracked for XE2-XE4 (Win32)下载地址:
http://download.csdn.net/detail/wozengcong/6886915

XLSReadWriteII_v5.20.25〖D7,XE-XE6〗下载地址:

http://download.csdn.net/detail/wozengcong/7689003

安装步骤:
1、在Embarcadero RAD Studio XE2主菜单中依次点击"Component->Install Packages"添加(Add)XLSRWII5_DXE版本号.bpl
2、在Embarcadero RAD Studio XE4主菜单中依次点击“Toosl->Options->Delphi Options->Library->Library Path”分别添加Library Path:Obj和XLSReadWriteII的完整路径

安装步骤:
1、在Embarcadero RAD Studio XE2主菜单中依次点击"Component->Install Packages"添加(Add)XLSRWII5_DXE2.bpl
2、在Embarcadero RAD Studio XE4主菜单中依次点击“Toosl->Options->Delphi Options->Library->Library Path”分别添加Library Path:
Obj和XLSReadWriteII的完整路径
在Delphi中读取Excel文件,使用CreateOleObject的方式挺讨厌的,一直搞不定,输出了文件之后,总会在系统中打开一个Excel,就算Quit也不行,一个程序中使用的多了,还不定搞出什么事情来。狠狠心找个其它的东西来代替,于是发现了XlsReadWriteII。

使用之后发现这个东西真不错,简单好用。不管是读还是写均轻松搞定。下面是官方的Demo中的代码。

写文件代码,包括对格式的定制:

[delphi] view plaincopyprint?在CODE上查看代码片派生到我的代码片
XLS.Filename := 'FormatSample.xls';
XLS.Clear;
// Add format #0
with XLS.Formats.Add do begin
FontIndex := XLS.Fonts.AddIndex;
XLS.Fonts[FontIndex].Name := 'Courier new';
XLS.Fonts[FontIndex].Size := 14;
XLS.Fonts[FontIndex].Color := xcRed;
end;
// Add format #1
with XLS.Formats.Add do begin
FontIndex := XLS.Fonts.AddIndex;
XLS.Fonts[FontIndex].AssignTFont(Font);
end;
// Add format #2
with XLS.Formats.Add do begin
FillPatternForeColor := xcLilac;
end;
// Add format #3
with XLS.Formats.Add do begin
BorderTopColor := xcBlue;
BorderBottomColor := xcBlue;
BorderTopStyle := cbsThin;
BorderBottomStyle := cbsThick;
end;
// Add format #4
// ShortDateFormat is a Delphi global variable for the local date format.
with XLS.Formats.Add do begin
NumberFormat := ShortDateFormat;
end;
XLS.Sheets[0].WriteString(1,2,0,'Format #0');
XLS.Sheets[0].WriteString(1,3,1,'Format #1');
XLS.Sheets[0].WriteString(1,4,2,'Format #2');
XLS.Sheets[0].WriteString(1,5,3,'Format #3');
XLS.Sheets[0].WriteNumber(1,6,4,Date);
XLS.Write; //如果需要另存为一个文件,改FileName之后再写一次,如需更改工作簿的名称,设置Sheets[0].Name就可以了。

读取文件代码:

[delphi] view plaincopyprint?在CODE上查看代码片派生到我的代码片
var
Col,Row: integer;
Sum: double;
begin
if edFilename.Text = '' then begin
ShowMessage('Filename is missing');
Exit;
end;
Sum := 0;
XLS.Filename := edFilename.Text;
XLS.Read; //此行不能省,否则读取不到数据
XLS.Sheets[0].LastCol := 255;
XLS.Sheets[0].LastRow := 65535;
for Col := XLS.Sheets[0].FirstCol to XLS.Sheets[0].LastCol do begin
for Row := XLS.Sheets[0].FirstRow to XLS.Sheets[0].LastRow do begin
if (Row < Grid.RowCount) and (Col < Grid.ColCount) then
Grid.Cells[Col + 1,Row + 1] := XLS.Sheets[0].AsFmtString[Col,Row];
if XLS.Sheets[0].CellType[Col,Row] = ctFloat then
Sum := Sum + XLS.Sheets[0].AsFloat[Col,Row];
end;
end;
lblSum.Caption := Format('The sum of all numeric cells are: %.2f',[Sum]);
Grid.Invalidate;
end;

温馨提示:

XE5报错解决方案:

1、[dcc32 Error] Unit1.pas(51): E2003 Undeclared identifier: 'ctFloat'

[delphi] view plaincopyprint?在CODE上查看代码片派生到我的代码片
uses XLSSheetData5, XLSReadWriteII5, Xc12Utils5;//增加引用:Xc12Utils5
ctFloat修改为xctFloat

2、[dcc32 Error] Unit1.pas(42): E2064 Left side cannot be assigned to

[delphi] view plaincopyprint?在CODE上查看代码片派生到我的代码片
XLS.Sheets[0].LastCol := 255;
XLS.Sheets[0].LastRow := 65535;
删除或者注释掉即可

3、别名说明:

XLS是XLSReadWriteII5组件的Name,Grid是StringGrid组件的Name

最新文章

  1. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q116-Q120)
  2. 前端之CSS(一)
  3. 【BZOJ-1565】植物大战僵尸 拓扑排序 + 最小割
  4. A trip through the Graphics Pipeline 2011_06_(Triangle) rasterization and setup
  5. 64位环境中使用SQL查询excel的方式解决
  6. ligerui_实际项目_003:form中添加数据,表格(grid)里面显示,最后将表格(grid)里的数据提交到servlet
  7. JAVA简单的UI设计
  8. unix网络编程之简介
  9. php提取身份证号码中的生日日期以及验证是否为未成年人的函数
  10. HTML&amp;CSS基础学习笔记1.13—无序列表
  11. Python 提取Twitter转发推文的元素(比方username)
  12. 简单的android启动跳转页面
  13. Hibernate与JPA的区别是什么
  14. python-*args和**kwargs作用和区别
  15. Maven学习笔记2(坐标和依赖)
  16. shell if [[ ]]的一次应用
  17. bzoj 3522 / 4543 [POI 2014] Hotel - 动态规划 - 长链剖分
  18. UML(统一建模语言)是通用的可视化标准建模语言。由构造块、公共机制、构架三部分组成。
  19. Gym 100247B Similar Strings(哈希+思维)
  20. 荧光原位杂交技术 RNA-FiSH (fluorescence in situ hybridization)

热门文章

  1. Intent使用方法
  2. 安装appium需要注意的事项
  3. datatables ajax异步分页
  4. Py修行路 python基础 (二十一)logging日志模块 json序列化 正则表达式(re)
  5. haproxy启动时提示失败
  6. burpsuite扫描web目录
  7. axis调用webservice客户端开发
  8. Java多线程-线程的调度(让步)
  9. Codeforces 1120C Compress String(DP)
  10. PHP程序员求职经验总结