Excel2007操作类库
时间:2023-05-17 22:01:01
发布一个最近完成的Excel2007操作类库,可以在没有安装Office的机器上快速读写和操作Excel2007格式文件,不过还是需要.net framework2.0 :)。生成效率比较高,写入10000行50列的数据只需12秒,如果数据是纯数字还会更快,我的机器Pentium M 1.8G CPU 1.25G Memory。
Office2007中的Excel,Word,PowedPoint使用了OpenXml文件格式,文件是一个标准的zip压缩包,只需要简单的将文件的扩展名更改为.zip,就能看到其内部的具体内容,大部分是标准的xml文件,所以类库主要的任务就是操作xml。Excel2007的操作类库目前已经有人写过了如:ExcelPackage,最初因为项目需要也曾经改造过改类库,试图将之封装成可以结合报表数据分析工具的Excel2007报表生成工具,但是ExcelPackage内部的操作全部基于XmlDocument,效率低,生成简单的报表还可以,数据量稍微有点大就处理不过来了。
开始研究怎么样才能提高效率的时候,思索了一阵子,基于XmlDocument的操作,涉及了XPath等操作都是基于文档的,许多XPath的查询都是需要遍历文档的,即使再怎么优化XPath也不能提高太多的效率。后面老大提醒了我,应该把所有XML的操作都放到内存当中去做,把Excel文件中的XML文档内容映射到内存中的自定义对象,在操作完成后再将内存中的对象写回zip压缩包中去。没错就是这个思路...
编写这个类库的时候使用了System.IO.Packaging这个名称空间,该空间内提供了一些对zip文件的操作类,该空间位于WindowsBase.dll中,是一个.net3.x的库,其实还有一个可以实现和System.IO.Pacakaging类似功能的类库SharpZipLib,只是之前在编写Excel2007操作类库的时候还不知道,暂且从已经安装了.net3.x的同事那拷贝了WindwsBase.dll过来用,还好能顺利的在VS2005中引用且能正常使用。
此类库目前已经结合一个报表数据分析引擎,在一个中型Web系统中实现Excel2007报表的功能。
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Excel2013自动保存功能怎么设置?
![](https://img.aspxhome.com/file/2023/9/36059_0s.jpg)
excel2003图表的制作教程
使用Windows命令合并CSV文件
![](https://img.aspxhome.com/file/2023/5/a142635_0s.jpg)
Excel如何冻结首行
![](https://img.aspxhome.com/file/2023/1/55111_0s.gif)
INDEX、RANDBETWEEN、RAND函数随机分组
![](https://img.aspxhome.com/file/2023/9/a141999_0s.jpg)
Excel里方框内打勾☑的应用实例
如何把 excel 表格内容打印成一页 excel表格内容打印成一页技巧及实例教程
![](https://img.aspxhome.com/file/2023/0/a155390_0s.gif)
word的段落排序使用
在WORD2007里怎么把绘制的各种图形全选组合起来?
如果想不加班 请掌握以下excel技巧秘籍
![](https://img.aspxhome.com/file/2023/5/a155615_0s.jpg)
Word表格中怎么实现序列自动填充? Word自动编号的教程
![](https://img.aspxhome.com/file/2023/1/22831_0s.gif)
Excel2010如何手动批量求和
![](https://img.aspxhome.com/file/2023/2/37212_0s.jpg)
excel表格下拉菜单怎么设置?excel表格下拉菜单制作方法
![](https://img.aspxhome.com/file/2023/3/a143703_0s.png)
无需ps,Word也可以使图片变得更加清晰
![](https://img.aspxhome.com/file/2023/5/35355_0s.png)
excel表格数据条件设置的方法
图片插入Word文档后发现图片文字重叠在一起怎么办?
![](https://img.aspxhome.com/file/2023/1/20061_0s.png)
在Word2016文档中如何插入特殊符号
excel表格提示不能更改数组该怎么办?
![](https://img.aspxhome.com/file/2023/0/40500_0s.jpg)
win10系统重启后一直黑屏在转圈怎么办?win10系统重启后一直黑屏在转圈教程
![](https://img.aspxhome.com/file/2023/5/48035_0s.png)