admin 管理员组文章数量: 1184232
2024年4月19日发(作者:go语言未来的发展)
计算机光盘软件与应用
2012年第2期
Computer CD Software and Applications 信息技术应用研究
通过开放Open Xml快速生成Excel报表
张学敏
(英业达天津公司,天津
摘
300193)
要:Offlce 2007采用了基于UdML的文件格式,新的文件格式,称为Oficfe Open XML格式。这使得Ofice(f_:E.要
是EXce12007、Word2007、PowerPoint2007)档由封闭转为开放,不再是只有微软内部才了解Ofice文挡的文件格式。按 f
照格式规范,你可以在不同的操作系统,不同的开发环境,没有安装Ofice的情况下,采用多种方式来读写Offifce文档中
的内容。本文介绍如何利用。伍ca Open XML快速生成Excel2007报表。
关键词:OpenXanl文件格式;Ofice2007;快速生成 f
中图分类号:TP39 文献标识码:A 文章鳊号:1007—9599(2012)02—0047—02
Quickly Generate the Excel Report By Opening Open the Xml
Zhang Xuemin
(Inventec Electronics(Tianjin)Co.,Ltd,Tianjin 3001 93,China)
Abstract:0fice 2007 uses XML—based ffile format.the new file format called Omce Open XML Formats.This makes Omce
(Excel2007,Wlor02007,PowerPoint2007)documents from closed to 0pen is no longer the only Microsoft internal only understand
the file format of 0衢ce documents.In accordance with the format speciicatfion,you can be in diferent operating systems,diferent
development environment.there is no install Ofice.fUSing a variety of ways to read and write Ofice docufments.This article
describes how to use the Ofice Open fXML to quickly generate Excel2O07 statements.
Keywords:pen OXml ifle format;Oficef 2007;Quickly generate
面的样式中定义了Stylelndex=O和StyleIndex=l的样式。
实现过程(main body):
新的文件格式的容器是基于简单的分部分的压缩的ZIP文件
<cel1Xfs count= 2 >
格式。将一个普通的Excel2007文件的后缀名称由原来的.xlsx
<xf numFmtId= 0 fontId= 0 fillId= 0 borderld= 0
改为.zip(使它变成一个压缩格式的文档),经过解压缩后形成的
xfId= 0 >
目录及文件如下图所示。
<al ignment vert ical= center f>
口Lrels]
口[docProps]
</xf>
<xf numFmtId= 0 fontId= l
xfId= 0 applyFill= 1 >
口【xI】
舀IContent_Type==l aml
<alignment vertical= center
可以看到这些解压后的目录中的文件中即包含描述关系的
rels文件,也包含描述文档部件的xml文件和文档中包含的图片
</xf>
</celiXfs>
等(如果有的话)二进制数据的文件 每个文件都是由一些部件
的集合组成的,这个集合定义了文档。
这里的
rels目录中包含一个.rels文件,它定义了包中的根
关系。它是在解析整个包时首先要浏览的第一个文件。此外的
Content
Types.xml文档,提供包含在包中的其它部件的内容类
型的列表。.rels文件包含了基于起始部件(虚拟的起始部件)
的关系。在这个文件里可以看到描述文档属性信息app.xml、应
用程序设置信息core.xml文件的位置,以及定义Office文档信
息workbook.xml的文件及位置,在workbook.xml中,我们可以
看到这个Excel文档包含哪些Sheet及Sheet的名称等。与
workbook.xml同目录下的关系目录下的关系文件
rels\workbook.xm1.rels定义了组成Office文档信息的部件文
件及位置。
在文档关系文件workbook.xm1.rels中,我们可以看到所含
的描述各Sheet的xml文件的位置,描述文档中共享字符串信息
的文件sharedStrings.xml的位置,描述文档主题的信息的文件
theme1.xml的位置,及描述文档中的样式的文件styles.xml的
位置等等。
描述样式的styles.xml中,cellXfs是描述cell中用到的
样式的,它的子节点的每一个xf单元描述一种Cel1的样式,用
它出现在这个序列中的从0开始的顺序号StyleIndex来标识。下
如果需要用新的Cell样式显示单元格,可以继续在cel1Xfs
中添加xf样式单元,如果现有的font、fill、border等不能满
足要求,也可以先添加新的这些,产生新的组合形成新的样式。
组成Excel的各部件的XML中,描述个各Sheet的XML一般
是最大的(如果Sheet中有较多数据时)。生成文档耗时一般在这
里。我曾经尝试用Open XML SDK
中提供的DOM(Document Object Mode1)方式,实际上目前相
关资料的很多例子都是采用DOM方式读写Open XML文件。DOM是
处理XML的标准API之一。D0M被封装得使使用者感到非常简
单,但是它占用内存大、速度慢,并且冗长。当生成一个较大数
据量的报表时,速度不理想。查看Sheet中的描述Cell的单元,
<sheetData>
<row r= 1 spans= 1:3 >
<c r= A1 s= 1 >
<v>1200</v>
</c>
</row>
(下转第74页)
...——
47. ——
版权声明:本文标题:通过开放OpenXml快速生成Excel报表 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713539086a639742.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论