一种XML文档转换为EXCEL文档的方法及装置.pdf

上传人:a3 文档编号:1272979 上传时间:2018-04-11 格式:PDF 页数:9 大小:354.69KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010293739.8

申请日:

2010.09.19

公开号:

CN101968783A

公开日:

2011.02.09

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 17/22变更事项:专利权人变更前:深圳万兴信息科技股份有限公司变更后:万兴科技股份有限公司变更事项:地址变更前:518057 广东省深圳市南山区高新南一道TCL大厦A座901变更后:850000 西藏自治区拉萨市柳梧新区东环路以西、1-4路以北、1-3路以南、柳梧大厦以东8栋2单元6层2号|||专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 17/22变更事项:专利权人变更前:深圳市万兴软件有限公司变更后:深圳万兴信息科技股份有限公司变更事项:地址变更前:518057 广东省深圳市南山区高新南一道TCL大厦A座901变更后:518057 广东省深圳市南山区高新南一道TCL大厦A座901|||授权|||实质审查的生效IPC(主分类):G06F 17/22申请日:20100919|||公开

IPC分类号:

G06F17/22

主分类号:

G06F17/22

申请人:

深圳市万兴软件有限公司

发明人:

解辉

地址:

518057 广东省深圳市南山区高新南一道TCL大厦A座901

优先权:

专利代理机构:

深圳市君胜知识产权代理事务所 44268

代理人:

刘文求;韩金明

PDF下载: PDF下载
内容摘要

本发明属于文档应用领域,公开了一种XML文档转换为Excel文档的方法及装置,所述方法包括:读取XML文件中的基本元素信息;将读取的XML文件中的基本元素信息按照Excel的排版格式进行排版,获取一排版结果;按照上述排版结果生成XML2003文档;调用电子表格工具MS-Excel的Com接口将生成的XML2003文档转换为Excel文档。本发明在生成一个Excel文档的过程中只需要一次Com调用,最大程度上规避了Com调用的低效性和不稳定性,降低了资源占有量。

权利要求书

1: 一种 XML 文档转换为 Excel 文档的方法, 其特征在于, 所述方法包括以下步骤 : 读取 XML 文件中的基本元素信息 ; 将读取的 XML 文件中的基本元素信息按照 Excel 的排版格式进行排版, 获取一排版结 果; 按照上述排版结果生成 XML2003 文档 ; 调用电子表格工具 MS-Excel 的 Com 接口将生成的 XML2003 文档转换为 Excel 文档。
2: 如权利要求 1 所述的 XML 文档转换为 Excel 文档的方法, 其特征在于, 所述读取 XML 文件中的基本元素信息步骤具体包括 : 读取 XML 文件中工作簿 WorkBook 的基本信息 ; 读取 XML 文件中各个工作表 WorkSheet 的信息 ; 读取 XML 文件中各个工作表 WorkSheet 中的文本信息和文本属性信息。
3: 如权利要求 1 所述的 XML 文档转换为 Excel 文档的方法, 其特征在于, 所述将读取的 XML 文件中的基本元素信息按照 Excel 的排版格式进行排版的步骤具体包括 : 将 XML 文件中的文本拆分 ; 将拆分后的文本进行表格识别 ; 识别文本类型信息。
4: 如权利要求 1 所述的 XML 文档转换为 Excel 文档的方法, 其特征在于, 所述按照排版 结果生成 XML2003 文档的步骤具体包括 : 生成 XML2003 文档的工作簿 WorkBook 的文件头信息 ; 生成 XML2003 文档的单元格样式列表 ; 生成 XML2003 文档的工作表 WorkSheet。
5: 如权利要求 1 所述的 XML 文档转换为 Excel 文档的方法, 其特征在于, 所述调用电 子表格工具 MS-Excel 的 Com 接口将生成的 XML2003 文档转换为 Excel 文档的步骤具体包 括: 初始化 Com 接口 ; 调用 Com 模块中的工作簿对象 WorkBookPtr 将 XML2003 文件导入 ; 查询注册表得到用户安装的 Excel 版本信息, 根据该版本信息生成对应版本的 Excel 文档 ; 删除 XML2003 文件。
6: 一种 XML 文档转换为 Excel 文档的装置, 其特征在于, 所述装置包括 : XML 信息读取模块, 用于读取 XML 文件中的基本元素信息 ; 排版模块, 用于将所述 XML 信息读取模块读取的 XML 文件中的基本元素信息按照 Excel 的排版格式进行排版, 获取一排版结果 ; 文档生成模块, 用于按照上述排版结果生成 XML2003 文档 ; Excel 文档转换模块, 用于调用电子表格工具 MS-Excel 的 Com 接口将生成的 XML2003 文档转换为 Excel 文档。
7: 如权利要求 6 所述的 XML 文档转换为 Excel 文档的装置, 其特征在于, 所述 XML 信息 读取模块具体包括 : 工作簿信息读取模块, 用于读取 XML 文件中工作簿 WorkBook 的基本信息 ; 2 工作表信息读取模块, 用于读取 XML 文件中各个工作表 WorkSheet 的信息, 以及读取各 个工作表 WorkSheet 中的文本信息和文本属性信息。
8: 如权利要求 6 所述的 XML 文档转换为 Excel 文档的装置, 其特征在于, 所述排版模块 具体包括 : 文本拆分模块, 用于将文本拆分 ; 识别模块, 用于将拆分后的文本进行表格识别, 以及识别文本类型信息。
9: 如权利要求 6 所述的 XML 文档转换为 Excel 文档的装置, 其特征在于, 所述文档生成 模块具体包括 : 文件头信息生成模块, 用于生成工作簿 WorkBook 的文件头信息 ; 列表生成模块, 用于生成单元格样式列表, 以及生成工作表 WorkSheet。
10: 如权利要求 6 所述的 XML 文档转换为 Excel 文档的装置, 其特征在于, 所述 Excel 文档转换模块具体包括 : 接口初始化模块, 用于初始化 Com 接口 ; 文件导入模块, 用于调用 Com 模块中的工作簿对象 WorkBookPtr 将 XML2003 文件导入 ; Excel 文档生成模块, 用于查询注册表得到用户安装的 Excel 版本信息, 根据该版本信 息生成对应版本的 Excel 文档 ; XML 文件删除模块, 用于删除 XML2003 文件。

说明书


一种 XML 文档转换为 Excel 文档的方法及装置

    【技术领域】
     本发明属于文档应用领域, 具体涉及一种 XML 文档转换为 Excel 文档的方法及装置。 背景技术
     随着电脑的不断普及, 无纸化办公得到越来越多的应用, 各种各样的文档也大量 的出现在用户的面前。
     Microsoft Excel 是微软公司的办公软件 Microsoft office 的组件之一, 是由 Microsoft 为 Windows 和 Apple Macintosh 操作系统的电脑而编写和运行的一款试算表软 件。
     Excel 是微软办公套装软件的一个重要的组成部分, 它可以进行各种数据的处理、 统计分析和辅助决策操作, 广泛地应用于管理、 统计财经、 金融等众多领域。 现在业界比较流行的几种 XML 格式文件转换为 Excel 格式文件的方案包括 :
     方案一、 调用某些数据库软件提供的 API 接口生成 Excel 报表 ;
     方案二、 通过调用 MS-Excel 的自动化 Com 接口创建 Excel 报表和数据的写入, 生 成的次序是建立 WorkBook、 WorkSheet 和写入数据 ;
     方案三、 通过调用一些较成熟的开源文档编辑软件的接口实现 MS-Excel 基本信 息的写入, 较流行的是调用 OpenOffice 的应用程序编程接口 (Application Programming Interface, API) 接口来实现 Excel 文档的生成。
     方案一的缺点 : 由于大部分数据库软件仅仅提供一些将已知数据转换为基本表格 的功能, 当碰到单元格合并、 表头设置和数据类型设置的情况会无能无力。 这种表格不支持 公式运算, 不符合用户直接编辑运算的需要, 用户体验比较差。
     方案二的缺点 : MS-Excel 的 Com 接口对配置环境和输入数据的格式要求较高, 在 频繁多次调用的情况下, 经常会出现程序挂掉的情况。而且每输入一个单元 (Cell) 数据都 会涉及到一次 Com 调用, 所以此方案的效率较低。而且占用系统资源较多, 造成机器负载较 重。
     方案三的缺点 : 由于 xls 文件的内部格式没有公开, 所以当今一些主流的开源软 件对其支持的并不完美, 经常会造成元素丢失和排版混乱的情况。
     如何在生成 Excel 文档时减少对 Com 接口的调用, 提高 Com 调用的效率和稳定性, 降低资源占有量, 是文档应用领域的方向之一。
     发明内容
     本发明的目的在于提供一种 XML 文档转换为 Excel 文档的方法, 目的在于在生成 Excel 文档时减少对 Com 接口的调用, 提高 Com 调用的效率和稳定性, 降低资源占有量。
     本发明实施例是这样实现的, 一种 XML 文档转换为 Excel 文档的方法, 所述方法包 括以下步骤 :读取 XML 文件中的基本元素信息 ;
     将读取的 XML 文件中的基本元素信息按照 Excel 的排版格式进行排版, 获取一排 版结果 ;
     按照上述排版结果生成 XML2003 文档 ;
     调用电子表格工具 MS-Excel 的 Com 接口将生成的 XML2003 文档转换为 Excel 文 档。
     本发明实施例的另一目的在于提供一种 XML 文档转换为 Excel 文档的装置, 所述 装置包括 :
     XML 信息读取模块, 用于读取 XML 文件中的基本元素信息 ;
     排版模块, 用于将所述 XML 信息读取模块读取的 XML 文件中的基本元素信息按照 Excel 的排版格式进行排版, 获取一排版结果 ;
     文档生成模块, 用于按照上述排版结果生成 XML2003 文档 ;
     Excel 文档转换模块, 用于调用电子表格工具 MS-Excel 的 Com 接口将生成的 XML2003 文档转换为 Excel 文档。
     本发明按照 Excel 文件的内容和排版生成相同的 XML2003 文件, 完后在后台调用 MS-Excel 的 Com 接口一次性的将 XML2003 文件转换为 Excel 文件, 在生成一个 Excel 文档 的过程中只需要一次 Com 调用, 最大程度上规避了 Com 调用的低效性和不稳定性, 降低了资 源占有量。 附图说明
     图 1 为本发明实施例提供的 XML 文档转换为 Excel 文档的方法的流程图 ;
     图 2 为本发明实施例提供的 XML 文档转换为 Excel 文档的装置的结构图。 具体实施方式
     为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅用以解释本发明, 并不 用于限定本发明。
     图 1 示出了本发明实施例提供的 XML 文档转换为 Excel 文档的方法的流程。
     在步骤 S101 中, 读取 XML 文件中的基本元素信息 ;
     在步骤 S102 中, 将读取的 XML 文件中的基本元素信息按照 Excel 的排版格式进行 排版, 获取一排版结果 ;
     在步骤 S103 中, 按照步骤 S102 中的排版结果生成 XML2003 文档 ;
     在步骤 S104 中, 调用电子表格工具 MS-Excel 的 Com 接口将生成的 XML2003 文档 转换为 Excel 文档。
     其中, 所述步骤 S101 具体描述如下 :
     首 先 读 取 可 扩 展 标 记 语 言 (Extensible Markup Language, XML) 文 件 工 作 簿 WorkBook 的基本信息, 包括作者属性和文档生成日期等, 然后读取 XML 文件各个工作表 WorkSheet 的信息, 最后是读取 WorkSheet 中的文本信息和文本属性信息等。
     其中, 所述步骤 S102 具体描述如下 :步骤 A、 将文本拆分, 增加其参与计算的能力 ;
     譬如 : 一个基本文本内容为 132.22008/03/22, 如果将其放置于一个 Cell 中, 此 文本将只具有文本属性, 没有了数字和日期的属性, 但是如果将其拆开放置于两个单元 (Cell) 中的话, 那么一个 Cell 具有数字属性, 另外一个 Cell 将具有日期属性。
     此步骤 A 的过程为 : 首先判断本文本块是否被表格线分开, 如果此文本块被一表 格线穿过, 那么就在穿过位置将此文本块分为两块文本, 其次以本文本块的大小为输入动 态确定一个阀值, 如果文本块中的两文本间距大于此阀值, 则将此文本块分开。
     步骤 B、 将步骤 A 处理后的文本进行表格识别 ;
     如果通过特征识别识别到了表格就将表格单独输出处理, 如果没有识别到表格就 对本页中所有的文本元素进行整体排版。
     此步骤 B 的过程为 : 首先区分不同表格的表格线, 将不同表格的表格线置于不同 的闭包中, 其次是按照表格线的位置将文本块放置在不同的表格中。
     步骤 C、 识别 Cell 的线条属性和背景颜色属性。
     步骤 D、 识别文本的类型信息 ; 此处主要识别数字、 百分号、 日期、 时间、 货币、 分数 和科学计数等信息。 其中, 所述步骤 S103 具体包括 :
     a、 生成 XML2003 文档工作簿 WorkBook 的文件头信息, 此信息主要包括了文件作 者、 创建时间、 版本号和是否加密等信息 ;
     b、 生成 XML2003 文档单元格样式列表 ;
     此列表代表整个工作簿 WorkBook 中单元格的所有样式, 在输入任何一个单元格 的时候都要遍历此样式列表, 查询是否该单元格样式在此单元格中存在, 如果存在则返回 该样式在列表中的索引值, 如果不存在则在列表中新建该样式的索引并将新建的索引值返 回。
     c、 生成 XML2003 文档工作表 WorkSheet。
     每个 WorkSheet 代表 Excel 中的一页, 在创建一个 WorkSheet 的时候需要创建 Column 信息、 Row 信息和 Cell 信息。
     首先创建 Column 列表, 每个 Column 代表 WorkSheet 中的一列, 主要需要创建列 宽、 是否固定列宽和创建列的索引等几部分 ;
     其次需要创建 Row 列表, 每个 Row 代表 WorkSheet 中的一行, 主要需要创建行高、 是否固定行高和行的索引等几部分 ;
     之后是建立 Cell 对象, Cell 对象为 WorkSheet 中最基本的单元, 此步骤分为两个 部分, 一是合并单元格, 二是输入单元格的信息 :
     合并单元格主要需要确定在水平和垂直方向上需要合并的基本单元格数目, 通过 比较本单元格占据的区域大小, 以及将基本单元格在水平和垂直方向上进行比较, 可以确 定在水平和垂直方向上需要合并的单元格数目。在得到合并区域后, 通过设置 Cell 的合并 标识符, 即可达到合并单元格的效果 ;
     单元格的信息输入包括以下几个步骤 : 一是单元格的样式设置, 通过将此单元格 的样式和 WorkBook 的样式列表进行比较, 如果此样式在列表中存在, 则返回其索引值, 如 果不存在则在列表中新建该样式并返回索引值, 得到索引值后将此索引值设置到 Cell 的
     属性列表中 ; 二是单元格的文本排版, 首先需要控制单元格中文本的位置属性, 主要包括居 中、 靠左、 靠右等几种样式, 其次是需要定位文本的位置, 水平方向上是使用空格来进行定 位, 垂直方向上是使用空行来进行定位 ; 三是文本属性的设置, 主要包括文本类型的设置、 文本颜色和字体字号的设置。
     其中, 所述步骤 S104 具体包括 :
     i、 初始化 Com 环境 ;
     ii、 调用 Com 模块中的工作簿对象 WorkBookPtr 将 XML2003 文件导入 ;
     iii、 查询注册表得到用户安装的 Excel 版本信息在根据该版本信息按照规则生 成对应版本的 Excel 文档, 生成的规则是如果用户安装了 Excel2002 和 Excel2003 则生成 xls 格式文档, 如果用户安装了 Excel2007 和 Excel2010 则生成 xlsx 格式文档 ;
     iv、 删除 XML2003 文件。
     本发明通过直接生成 XML2003 中间文件, 规避了频繁的 Com 调用, 提高了文档生成 的效率和稳定性。而且文档数据识别为特定类型, 可以进行公式运算, 提高了用户的效率。 且本发明中调用 MS-Excel 的另存方法, 在后台实现 XML2003 文档到 Excel 文档的转换, 可 以支持各种版本 Excel 文件的生成。 图 2 示出了本发明实施例提供的 XML 文档转换为 Excel 文档的装置的结构, 所述 装置包括 XML 信息读取模块 21、 排版模块 22、 文档生成模块 23 以及 Excel 文档转换模块 24。
     其中, XML 信息读取模块 21, 用于读取 XML 文件中的基本元素信息 ;
     排版模块 22, 用于将所述 XML 信息读取模块读取的 XML 文件中的基本元素信息按 照 Excel 的排版格式进行排版, 获取一排版结果 ;
     文档生成模块 23, 用于按照上述排版结果生成 XML2003 文档 ;
     Excel 文档转换模块 24, 用于调用电子表格工具 MS-Excel 的 Com 接口将生成的 XML2003 文档转换为 Excel 文档。
     具体的, 所述 XML 信息读取模块 21 包括工作簿信息读取模块 211 和工作表信息读 取模块 212 :
     工作簿信息读取模块 211, 用于读取工作簿 WorkBook 的基本信息 ;
     工作表信息读取模块 212, 用于读取各个工作表 WorkSheet 的信息, 以及读取各个 工作表 WorkSheet 中的文本信息和文本属性信息。
     所述排版模块 22 具体包括文本拆分模块 221 和识别模块 222 :
     文本拆分模块 221, 用于将文本拆分 ;
     识别模块 222, 用于将拆分后的文本进行表格识别, 以及识别文本类型信息。
     所述文档生成模块 23 具体包括文件头信息生成模块 231 和列表生成模块 232 :
     文件头信息生成模块 231, 用于生成工作簿 WorkBook 的文件头信息 ;
     列表生成模块 232, 用于生成单元格样式列表, 以及生成工作表 WorkSheet。
     所述 Excel 文档转换模块 24 具体包括接口初始化模块 241、 文件导入模块 242、 Excel 文档生成模块 243 以及 XML 文件删除模块 244 :
     接口初始化模块 241, 用于初始化 Com 接口 ;
     文件导入模块 242, 用于调用 Com 模块中的 WorkBookPtr 对象将 XML2003 文件导
     入; Excel 文档生成模块 243, 用于完后查询注册表得到用户安装的 Excel 版本信息, 根据该版本信息按照规则生成对应版本的 Excel 文档 ;
     XML 文件删除模块 244, 用于删除 XML2003 文件。
     本发明按照 Excel 文件的内容和排版生成相同的 XML2003 文件, 完后在后台调用 MS-Excel 的 Com 接口一次性的将 XML2003 文件转换为 Excel 文件, 在生成一个 Excel 文档 的过程中只需要一次 Com 调用, 最大程度上规避了 Com 调用的低效性和不稳定性, 降低了资 源占有量。
     应当理解的是, 对本领域普通技术人员来说, 可以根据上述说明加以改进或变换, 而这些改进和变换都应属于本发明所附权利要求的保护范围。
    

一种XML文档转换为EXCEL文档的方法及装置.pdf_第1页
第1页 / 共9页
一种XML文档转换为EXCEL文档的方法及装置.pdf_第2页
第2页 / 共9页
一种XML文档转换为EXCEL文档的方法及装置.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种XML文档转换为EXCEL文档的方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种XML文档转换为EXCEL文档的方法及装置.pdf(9页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101968783A43申请公布日20110209CN101968783ACN101968783A21申请号201010293739822申请日20100919G06F17/2220060171申请人深圳市万兴软件有限公司地址518057广东省深圳市南山区高新南一道TCL大厦A座90172发明人解辉74专利代理机构深圳市君胜知识产权代理事务所44268代理人刘文求韩金明54发明名称一种XML文档转换为EXCEL文档的方法及装置57摘要本发明属于文档应用领域,公开了一种XML文档转换为EXCEL文档的方法及装置,所述方法包括读取XML文件中的基本元素信息;将读取的XML文件中的。

2、基本元素信息按照EXCEL的排版格式进行排版,获取一排版结果;按照上述排版结果生成XML2003文档;调用电子表格工具MSEXCEL的COM接口将生成的XML2003文档转换为EXCEL文档。本发明在生成一个EXCEL文档的过程中只需要一次COM调用,最大程度上规避了COM调用的低效性和不稳定性,降低了资源占有量。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书5页附图1页CN101968783A1/2页21一种XML文档转换为EXCEL文档的方法,其特征在于,所述方法包括以下步骤读取XML文件中的基本元素信息;将读取的XML文件中的基本元素信息按照EXCEL。

3、的排版格式进行排版,获取一排版结果;按照上述排版结果生成XML2003文档;调用电子表格工具MSEXCEL的COM接口将生成的XML2003文档转换为EXCEL文档。2如权利要求1所述的XML文档转换为EXCEL文档的方法,其特征在于,所述读取XML文件中的基本元素信息步骤具体包括读取XML文件中工作簿WORKBOOK的基本信息;读取XML文件中各个工作表WORKSHEET的信息;读取XML文件中各个工作表WORKSHEET中的文本信息和文本属性信息。3如权利要求1所述的XML文档转换为EXCEL文档的方法,其特征在于,所述将读取的XML文件中的基本元素信息按照EXCEL的排版格式进行排版的步。

4、骤具体包括将XML文件中的文本拆分;将拆分后的文本进行表格识别;识别文本类型信息。4如权利要求1所述的XML文档转换为EXCEL文档的方法,其特征在于,所述按照排版结果生成XML2003文档的步骤具体包括生成XML2003文档的工作簿WORKBOOK的文件头信息;生成XML2003文档的单元格样式列表;生成XML2003文档的工作表WORKSHEET。5如权利要求1所述的XML文档转换为EXCEL文档的方法,其特征在于,所述调用电子表格工具MSEXCEL的COM接口将生成的XML2003文档转换为EXCEL文档的步骤具体包括初始化COM接口;调用COM模块中的工作簿对象WORKBOOKPTR将。

5、XML2003文件导入;查询注册表得到用户安装的EXCEL版本信息,根据该版本信息生成对应版本的EXCEL文档;删除XML2003文件。6一种XML文档转换为EXCEL文档的装置,其特征在于,所述装置包括XML信息读取模块,用于读取XML文件中的基本元素信息;排版模块,用于将所述XML信息读取模块读取的XML文件中的基本元素信息按照EXCEL的排版格式进行排版,获取一排版结果;文档生成模块,用于按照上述排版结果生成XML2003文档;EXCEL文档转换模块,用于调用电子表格工具MSEXCEL的COM接口将生成的XML2003文档转换为EXCEL文档。7如权利要求6所述的XML文档转换为EXCE。

6、L文档的装置,其特征在于,所述XML信息读取模块具体包括工作簿信息读取模块,用于读取XML文件中工作簿WORKBOOK的基本信息;权利要求书CN101968783A2/2页3工作表信息读取模块,用于读取XML文件中各个工作表WORKSHEET的信息,以及读取各个工作表WORKSHEET中的文本信息和文本属性信息。8如权利要求6所述的XML文档转换为EXCEL文档的装置,其特征在于,所述排版模块具体包括文本拆分模块,用于将文本拆分;识别模块,用于将拆分后的文本进行表格识别,以及识别文本类型信息。9如权利要求6所述的XML文档转换为EXCEL文档的装置,其特征在于,所述文档生成模块具体包括文件头信。

7、息生成模块,用于生成工作簿WORKBOOK的文件头信息;列表生成模块,用于生成单元格样式列表,以及生成工作表WORKSHEET。10如权利要求6所述的XML文档转换为EXCEL文档的装置,其特征在于,所述EXCEL文档转换模块具体包括接口初始化模块,用于初始化COM接口;文件导入模块,用于调用COM模块中的工作簿对象WORKBOOKPTR将XML2003文件导入;EXCEL文档生成模块,用于查询注册表得到用户安装的EXCEL版本信息,根据该版本信息生成对应版本的EXCEL文档;XML文件删除模块,用于删除XML2003文件。权利要求书CN101968783A1/5页4一种XML文档转换为EXC。

8、EL文档的方法及装置技术领域0001本发明属于文档应用领域,具体涉及一种XML文档转换为EXCEL文档的方法及装置。背景技术0002随着电脑的不断普及,无纸化办公得到越来越多的应用,各种各样的文档也大量的出现在用户的面前。0003MICROSOFTEXCEL是微软公司的办公软件MICROSOFTOFFICE的组件之一,是由MICROSOFT为WINDOWS和APPLEMACINTOSH操作系统的电脑而编写和运行的一款试算表软件。0004EXCEL是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。0005现在业界。

9、比较流行的几种XML格式文件转换为EXCEL格式文件的方案包括0006方案一、调用某些数据库软件提供的API接口生成EXCEL报表;0007方案二、通过调用MSEXCEL的自动化COM接口创建EXCEL报表和数据的写入,生成的次序是建立WORKBOOK、WORKSHEET和写入数据;0008方案三、通过调用一些较成熟的开源文档编辑软件的接口实现MSEXCEL基本信息的写入,较流行的是调用OPENOFFICE的应用程序编程接口APPLICATIONPROGRAMMINGINTERFACE,API接口来实现EXCEL文档的生成。0009方案一的缺点由于大部分数据库软件仅仅提供一些将已知数据转换为基。

10、本表格的功能,当碰到单元格合并、表头设置和数据类型设置的情况会无能无力。这种表格不支持公式运算,不符合用户直接编辑运算的需要,用户体验比较差。0010方案二的缺点MSEXCEL的COM接口对配置环境和输入数据的格式要求较高,在频繁多次调用的情况下,经常会出现程序挂掉的情况。而且每输入一个单元CELL数据都会涉及到一次COM调用,所以此方案的效率较低。而且占用系统资源较多,造成机器负载较重。0011方案三的缺点由于XLS文件的内部格式没有公开,所以当今一些主流的开源软件对其支持的并不完美,经常会造成元素丢失和排版混乱的情况。0012如何在生成EXCEL文档时减少对COM接口的调用,提高COM调用。

11、的效率和稳定性,降低资源占有量,是文档应用领域的方向之一。发明内容0013本发明的目的在于提供一种XML文档转换为EXCEL文档的方法,目的在于在生成EXCEL文档时减少对COM接口的调用,提高COM调用的效率和稳定性,降低资源占有量。0014本发明实施例是这样实现的,一种XML文档转换为EXCEL文档的方法,所述方法包括以下步骤说明书CN101968783A2/5页50015读取XML文件中的基本元素信息;0016将读取的XML文件中的基本元素信息按照EXCEL的排版格式进行排版,获取一排版结果;0017按照上述排版结果生成XML2003文档;0018调用电子表格工具MSEXCEL的COM接。

12、口将生成的XML2003文档转换为EXCEL文档。0019本发明实施例的另一目的在于提供一种XML文档转换为EXCEL文档的装置,所述装置包括0020XML信息读取模块,用于读取XML文件中的基本元素信息;0021排版模块,用于将所述XML信息读取模块读取的XML文件中的基本元素信息按照EXCEL的排版格式进行排版,获取一排版结果;0022文档生成模块,用于按照上述排版结果生成XML2003文档;0023EXCEL文档转换模块,用于调用电子表格工具MSEXCEL的COM接口将生成的XML2003文档转换为EXCEL文档。0024本发明按照EXCEL文件的内容和排版生成相同的XML2003文件,。

13、完后在后台调用MSEXCEL的COM接口一次性的将XML2003文件转换为EXCEL文件,在生成一个EXCEL文档的过程中只需要一次COM调用,最大程度上规避了COM调用的低效性和不稳定性,降低了资源占有量。附图说明0025图1为本发明实施例提供的XML文档转换为EXCEL文档的方法的流程图;0026图2为本发明实施例提供的XML文档转换为EXCEL文档的装置的结构图。具体实施方式0027为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。0028图1示出了本发明实施例提供的XM。

14、L文档转换为EXCEL文档的方法的流程。0029在步骤S101中,读取XML文件中的基本元素信息;0030在步骤S102中,将读取的XML文件中的基本元素信息按照EXCEL的排版格式进行排版,获取一排版结果;0031在步骤S103中,按照步骤S102中的排版结果生成XML2003文档;0032在步骤S104中,调用电子表格工具MSEXCEL的COM接口将生成的XML2003文档转换为EXCEL文档。0033其中,所述步骤S101具体描述如下0034首先读取可扩展标记语言EXTENSIBLEMARKUPLANGUAGE,XML文件工作簿WORKBOOK的基本信息,包括作者属性和文档生成日期等,然。

15、后读取XML文件各个工作表WORKSHEET的信息,最后是读取WORKSHEET中的文本信息和文本属性信息等。0035其中,所述步骤S102具体描述如下说明书CN101968783A3/5页60036步骤A、将文本拆分,增加其参与计算的能力;0037譬如一个基本文本内容为13222008/03/22,如果将其放置于一个CELL中,此文本将只具有文本属性,没有了数字和日期的属性,但是如果将其拆开放置于两个单元CELL中的话,那么一个CELL具有数字属性,另外一个CELL将具有日期属性。0038此步骤A的过程为首先判断本文本块是否被表格线分开,如果此文本块被一表格线穿过,那么就在穿过位置将此文本块。

16、分为两块文本,其次以本文本块的大小为输入动态确定一个阀值,如果文本块中的两文本间距大于此阀值,则将此文本块分开。0039步骤B、将步骤A处理后的文本进行表格识别;0040如果通过特征识别识别到了表格就将表格单独输出处理,如果没有识别到表格就对本页中所有的文本元素进行整体排版。0041此步骤B的过程为首先区分不同表格的表格线,将不同表格的表格线置于不同的闭包中,其次是按照表格线的位置将文本块放置在不同的表格中。0042步骤C、识别CELL的线条属性和背景颜色属性。0043步骤D、识别文本的类型信息;此处主要识别数字、百分号、日期、时间、货币、分数和科学计数等信息。0044其中,所述步骤S103具。

17、体包括0045A、生成XML2003文档工作簿WORKBOOK的文件头信息,此信息主要包括了文件作者、创建时间、版本号和是否加密等信息;0046B、生成XML2003文档单元格样式列表;0047此列表代表整个工作簿WORKBOOK中单元格的所有样式,在输入任何一个单元格的时候都要遍历此样式列表,查询是否该单元格样式在此单元格中存在,如果存在则返回该样式在列表中的索引值,如果不存在则在列表中新建该样式的索引并将新建的索引值返回。0048C、生成XML2003文档工作表WORKSHEET。0049每个WORKSHEET代表EXCEL中的一页,在创建一个WORKSHEET的时候需要创建COLUMN信。

18、息、ROW信息和CELL信息。0050首先创建COLUMN列表,每个COLUMN代表WORKSHEET中的一列,主要需要创建列宽、是否固定列宽和创建列的索引等几部分;0051其次需要创建ROW列表,每个ROW代表WORKSHEET中的一行,主要需要创建行高、是否固定行高和行的索引等几部分;0052之后是建立CELL对象,CELL对象为WORKSHEET中最基本的单元,此步骤分为两个部分,一是合并单元格,二是输入单元格的信息0053合并单元格主要需要确定在水平和垂直方向上需要合并的基本单元格数目,通过比较本单元格占据的区域大小,以及将基本单元格在水平和垂直方向上进行比较,可以确定在水平和垂直方向。

19、上需要合并的单元格数目。在得到合并区域后,通过设置CELL的合并标识符,即可达到合并单元格的效果;0054单元格的信息输入包括以下几个步骤一是单元格的样式设置,通过将此单元格的样式和WORKBOOK的样式列表进行比较,如果此样式在列表中存在,则返回其索引值,如果不存在则在列表中新建该样式并返回索引值,得到索引值后将此索引值设置到CELL的说明书CN101968783A4/5页7属性列表中;二是单元格的文本排版,首先需要控制单元格中文本的位置属性,主要包括居中、靠左、靠右等几种样式,其次是需要定位文本的位置,水平方向上是使用空格来进行定位,垂直方向上是使用空行来进行定位;三是文本属性的设置,主要。

20、包括文本类型的设置、文本颜色和字体字号的设置。0055其中,所述步骤S104具体包括0056I、初始化COM环境;0057II、调用COM模块中的工作簿对象WORKBOOKPTR将XML2003文件导入;0058III、查询注册表得到用户安装的EXCEL版本信息在根据该版本信息按照规则生成对应版本的EXCEL文档,生成的规则是如果用户安装了EXCEL2002和EXCEL2003则生成XLS格式文档,如果用户安装了EXCEL2007和EXCEL2010则生成XLSX格式文档;0059IV、删除XML2003文件。0060本发明通过直接生成XML2003中间文件,规避了频繁的COM调用,提高了文档。

21、生成的效率和稳定性。而且文档数据识别为特定类型,可以进行公式运算,提高了用户的效率。且本发明中调用MSEXCEL的另存方法,在后台实现XML2003文档到EXCEL文档的转换,可以支持各种版本EXCEL文件的生成。0061图2示出了本发明实施例提供的XML文档转换为EXCEL文档的装置的结构,所述装置包括XML信息读取模块21、排版模块22、文档生成模块23以及EXCEL文档转换模块24。0062其中,XML信息读取模块21,用于读取XML文件中的基本元素信息;0063排版模块22,用于将所述XML信息读取模块读取的XML文件中的基本元素信息按照EXCEL的排版格式进行排版,获取一排版结果;0。

22、064文档生成模块23,用于按照上述排版结果生成XML2003文档;0065EXCEL文档转换模块24,用于调用电子表格工具MSEXCEL的COM接口将生成的XML2003文档转换为EXCEL文档。0066具体的,所述XML信息读取模块21包括工作簿信息读取模块211和工作表信息读取模块2120067工作簿信息读取模块211,用于读取工作簿WORKBOOK的基本信息;0068工作表信息读取模块212,用于读取各个工作表WORKSHEET的信息,以及读取各个工作表WORKSHEET中的文本信息和文本属性信息。0069所述排版模块22具体包括文本拆分模块221和识别模块2220070文本拆分模块2。

23、21,用于将文本拆分;0071识别模块222,用于将拆分后的文本进行表格识别,以及识别文本类型信息。0072所述文档生成模块23具体包括文件头信息生成模块231和列表生成模块2320073文件头信息生成模块231,用于生成工作簿WORKBOOK的文件头信息;0074列表生成模块232,用于生成单元格样式列表,以及生成工作表WORKSHEET。0075所述EXCEL文档转换模块24具体包括接口初始化模块241、文件导入模块242、EXCEL文档生成模块243以及XML文件删除模块2440076接口初始化模块241,用于初始化COM接口;0077文件导入模块242,用于调用COM模块中的WORKB。

24、OOKPTR对象将XML2003文件导说明书CN101968783A5/5页8入;0078EXCEL文档生成模块243,用于完后查询注册表得到用户安装的EXCEL版本信息,根据该版本信息按照规则生成对应版本的EXCEL文档;0079XML文件删除模块244,用于删除XML2003文件。0080本发明按照EXCEL文件的内容和排版生成相同的XML2003文件,完后在后台调用MSEXCEL的COM接口一次性的将XML2003文件转换为EXCEL文件,在生成一个EXCEL文档的过程中只需要一次COM调用,最大程度上规避了COM调用的低效性和不稳定性,降低了资源占有量。0081应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而这些改进和变换都应属于本发明所附权利要求的保护范围。说明书CN101968783A1/1页9图1图2说明书附图。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1