如何使用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

转 XlsReadWriteII 的博文(自留参考)的更多相关文章

  1. JavaScript自动生成博文目录导航/TOP按钮

    博客园页面添加返回顶部TOP按钮 进入网页管理->设置 在"页面定制CSS代码"中添加如下css样式,当然你可以改为自己喜欢的样式 此处可以将背景色background-co ...

  2. javascript的api设计原则

    前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...

  3. 我的cocos2d-x集成sharesdk之旅(转)

    链接地址:http://blog.csdn.net/yeungxuguang/article/details/18227153 本文出自:http://www.iteye.com/topic/1130 ...

  4. 【CPU微架构设计】分布式多端口(4写2读)寄存器堆设计

    寄存器堆(Register File)是微处理的关键部件之一.寄存器堆往往具有多个读写端口,其中写端口往往与多个处理单元相对应.传统的方法是使用集中式寄存器堆,即一个集中式寄存器堆匹配N个处理单元.随 ...

  5. power designer的安装

    PowerDesigner的安装 原由:新学期要开概要设计(软件设计与体系结构)这门课,老师推荐了两个CASE工具. Rational Rose Power Designer 本来想找rose的资源, ...

  6. Thinking In Design Pattern——MVP模式演绎

    原文<Thinking In Design Pattern——MVP模式演绎>不知为何丢失了,故重新整理了一遍. 目录 What Is MVP Domain Model StubRepos ...

  7. 【JS】327- javascript 的 api 设计原则

    点击上方"前端自习课"关注,学习起来~ 前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博 ...

  8. .Net 跨平台可移植类库正在进行

    [原文发表地址] Cross-Platform Portable Class Libraries with .NET are Happening [译文发表地址] .Net 跨平台可移植类库正在进行 ...

  9. 使用sklearn进行集成学习——实践

    系列 <使用sklearn进行集成学习——理论> <使用sklearn进行集成学习——实践> 目录 1 Random Forest和Gradient Tree Boosting ...

随机推荐

  1. linux 下SPI通信注意事项(待续)

    一.2台Linux设备之间使用SPI通信 1.标准Linux只支持Master 模式.但是可以在驱动中修改为Slave模式: 2.硬件SPI可能支持Slave模式,也可能不支持.这个要提前确认好: 3 ...

  2. webservice有关application/xop+xml的异常

    今天同事调用一个webservice时返回类似错误 响应消息的内容类型 multipart/related; type="application/xop+xml"; boundar ...

  3. 使用VS2017 编写Linux系统上的Opencv程序

    背景 之前写图像算法的程序都是在window10下使用VS编写,VS这个IDE结合“ImageWatch.vsix“插件,用于调试opencv相关的图像算法程序十分方便.后因项目需要,需将相关程序移植 ...

  4. 分布式缓存系统 Memcached 主线程之main函数

    前两节中对工作线程的工作流程做了较为详细的分析,现把其主要流程总结为下图: 接下来本节主要分析主线程相关的函数设计,主函数main的基本流程如下图所示: 对于主线程中的工作线程的初始化到启动所有的工作 ...

  5. mybatis 动态sql语句(3)

    mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类: 1. if 语句 (简单的条件判断) 2. ...

  6. Oracle 分区表-Range分区

    原文:http://www.tuicool.com/articles/MzeM7r 一.什么是分区表 Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分 ...

  7. AJAX的流程是什么?

    客户端产生js的事件 创建XMLHttpRequest对象 对XMLHttpRequest进行配置 通过AJAX引擎发送异步请求 服务器端接受请求并且处理请求,返回html或者xml内容 XML调用一 ...

  8. java成神之——集合框架之ArrayList,Lists,Sets

    集合 集合种类 ArrayList 声明 增删改查元素 遍历几种方式 空集合 子集合 不可变集合 LinkedList Lists 排序 类型转换 取交集 移动元素 删除交集元素 Sets 集合特点 ...

  9. 01CSS的引入方式

    引入CSS方式(重点掌握) 行内样式 内接样式 外接样式 链接式 导入式 css介绍 现在的互联网前端分三层: HTML:超文本标记语言.从语义的角度描述页面结构. CSS:层叠样式表.从审美的角度负 ...

  10. Android使用图表库简单教程

    经常要用到统计数据这个功能,要直观的显示出来,最好还是用图表.自己弄也麻烦,所以用了Github上的一个非常著名的开源图标库:MpChart. 使用前去网上找它俩的jar包,然后导入就行.资源比较好找 ...