与您可能想到的相反,并不是每个文档最初都是用XML编写的。 实际上,大多数文档是使用其他工具准备的,后来又转换为XML。 许多文档源自关系数据库(例如DB2)或Microsoft Office应用程序(例如Word或Excel)。

我发现许多企业都使用Excel来编辑和准备数据。 它使用简单,使用广泛,其表格格式非常适合各种信息,例如产品列表,名称列表,财务数据或统计数据。 Excel电子表格通常通过电子邮件发送给要求填写空白的用户。

检索数据

在专有应用程序中收集和准备数据时出现的问题之一是恢复数据。 幸运的是,这不是Excel的问题。 尽管没有公开提供Excel文件格式的规范,但是有许多选项可以从电子表格中提取XML信息。 本技巧介绍了您的选择,并重点介绍了每个解决方案的优缺点。

XML的

最新版本的Excel(Excel 2002和Excel XP)可以将电子表格导出为XML。 尽管您对标签的选择没有任何发言权,但是您确实获得了可以用任何XML工具(包括XSLT样式表)进行后处理的有效XML文档。 该格式称为XMLSS

如果满足以下条件,这是最简单的解决方案:

  1. 您的用户拥有最新版本的Excel,并且
  2. 您正在工作站上处理XML数据。

第一个条件很明显,第二个条件可能需要更多解释。

假设您设置了一个服务器来收集和处理统计数据。 您的用户使用Excel准备数据,然后将其电子表格上传到服务器以进行进一步处理。 第一步是将电子表格转换为XML。 一种解决方案是在Excel中打开电子表格,然后将其导出为XMLSS格式。 我已经看到公司实施了这样的解决方案,尽管它可以运行,但是请务必记住Excel是为工作站而不是服务器设计的。

尽管可以使用,但此解决方案可能不会像您希望的那样稳定。 除其他问题外,电子表格转换可能会成为瓶颈,因为可能难以对转换进行多线程处理。 在最坏的情况下,每个请求都会排队到单个Excel副本中。 它还限制了您的托管选项:Excel仅在Windows和MacOS上可用。

CSV文件

第一种选择是不使用实际的电子表格文件,而是使用逗号分隔值(CSV)文件。 CSV是一种用于交换电子表格的流行文件格式。 任何有价值的电子表格都可以导出和导入CSV文件。

此外,许多可与电子表格一起使用的第三方产品也支持CSV。 例如,大多数记帐软件包都可以使用CSV文件。 尽管CSV文件不是XML,但使用诸如XI之类的工具将它们转换为XML文件很简单(请参阅参考资料 )。 TopXML站点还包括用于纯XSLT解决方案的算法。

使用CSV文件对服务器更具吸引力。 一方面,您不再局限于某些平台。 相反,您正在为用户扩展选项(他们现在可以使用Lotus 1-2-3和其他电子表格以及许多也可以识别CSV格式的第三方工具)。

此解决方案唯一的缺点是您的用户必须采取额外的步骤将数据保存为CSV。 实际上,我发现这很少有问题,但是您的里程可能会有所不同。

普通转换

最后但并非最不重要的一点是,您可以使用特殊的库来读取Excel文档。 Excel文件格式尚未正式记录,但第三方对其进行反向工程已有一段时间了。 他们还提供了用于解码Excel文件的库(请参阅参考资料 )。 以下是一些可用API的列表:

  • Java Excel API是我最喜欢的解决方案之一,因为它具有可移植性,可以很好地读取XML文档,并且可以转换为XML。
  • XML :: Excel是Perl API,用于将Excel文档转换为XML。
  • OpenOffice包含用于读取Excel文档的C ++库。 您可以将这些库用作从Excel转换为XML的基础。
  • Apache POI支持使用Java代码读取Excel文件。 同样,您可以将其用作Excel到XML转换器的基础。

此列表仅是代表性示例。 其他工具可用于不同的平台。

转换Excel文件具有三个好处:

  • 这些文件可以在任何平台上运行。
  • 这些库很容易与服务器集成。
  • 用户无需记住要导出数据。

该解决方案的主要危险在于,没有一个库比真实的库好,并且您会发现某些电子表格的转换效果不佳。 您将需要测试适合您项目的最佳库。

走吧

Excel是一种流行的工具,用于准备您可能需要用XML处理的各种数据。 幸运的是,如本技巧文章所示,您有很多选择来获取XML数据。 最佳选择将取决于项目的具体情况。

无论您如何转换电子表格,都将发现生成的XML文档永远都不是您期望的。 也许它包含不需要的单元格,或者XML词汇表与您期望的不完全一样。 不用担心-在大多数情况下,准备XSLT样式表以过滤掉不需要的数据或重命名标签很简单。


翻译自: https://www.ibm.com/developerworks/xml/library/x-tipexc/index.html

将Excel数据转换为XML相关推荐

  1. arcmap shp导出cad无反应_如何使用ArcMap将Excel数据转换为shp数据

    1. 概述 对ArcMap而言,除了shapefile等数据源,还可以将包含地理位置的表格数据以 XY 坐标的形式添加到地图中,比如Excel格式的数据,如果包含有坐标数据在里面,就可以通过导入XY数 ...

  2. [工具库]JOXMLBuilder工具类——一键把多个bean对象数据转换为XML格式数据

    本人大四即将毕业的准程序员(JavaSE.JavaEE.android等)一枚,小项目也做过一点,于是乎一时兴起就写了一些工具. 我会在本博客中陆续发布一些平时可能会用到的工具. 代码质量可能不是很好 ...

  3. Objects365数据简介及数据转换为XML格式

    Objects365数据简介及数据转换为XML格式 注:Obj365和COCO数据集转换为xml格式以及转为yolo的txt格式,xml数据统计处理更改见GitHub:https://github.c ...

  4. gis中dbf转为csv_ArcGIS实践教程(2)ArcMap将excel数据转换为shp

    本文介绍将EXCEL数据转换为shp数据方法. 前言 经常使用ArcMap生成一些专题图,需要把EXCEL数据叠加到ArcGIS中,如果EXCEL数据中有经纬度的话,其实可以很方便的把EXCEL数据转 ...

  5. php excel转数组,php将excel数据转换为3d数组(php convert excel data into 3d array)

    php将excel数据转换为3d数组(php convert excel data into 3d array) 我有一个excel文件,其数据是一个3d数组. 我正在使用PHPExcel Objec ...

  6. 将excel表格数据转换为xml文本数据

    原文:http://blog.javayc.com/archives/12 这篇blog主要是讲述java中poi读取excel,并将excel中的数据转化为xml文本中的数据,而excel的版本包括 ...

  7. 如何使用ArcGIS将Excel数据转换为shp格式

    如果经常使用ArcMap生成一些专题图,需要把Excel数据叠加到ArcGIS中,如果Excel数据中有坐标的话,可以很方便的把Excel数据转换成shp数据,这里讲解一下具体的操作步骤,希望能够对大 ...

  8. poi读取excel 转换实体_java解析excel数据,将excel数据转换为实体类,存入数据库...

    前一段时间写了一个功能,从数据库中抽取出来的字段,写入到excel文件里:java使用poi把从数据库中取出的数据写入excel 最近实现了一个相反的功能,前台传一个excel文件,在后台解析该exc ...

  9. java解析excel存入map,java解析excel数据,将excel数据转换为实体类,存入数据库

    前一段时间写了一个功能,从数据库中抽取出来的字段,写入到excel文件里:java使用poi把从数据库中取出的数据写入excel 最近实现了一个相反的功能,前台传一个excel文件,在后台解析该exc ...

最新文章

  1. 职称计算机考试word2003真题,职称计算机考试《Word2003》历年真题回顾(4)
  2. Android eclipse导入项目后出现Unable to resolve target #39;android-17#39;解决方法
  3. 数据安全架构设计与实战~思维导图
  4. java三态_Java中对象的三种状态
  5. 小程序 - swiper除了左右切换还有上下滚动超出屏幕的内容
  6. PyTorch之Sequential
  7. Spring框架IOC的实现
  8. 通过 Telnet 在 Linux 终端中观看ASCII 星球大战
  9. Scala深入浅出实战经典---001-Scala开发环境搭建和HelloWorld解析
  10. 网络上的计算机找不到打印机,网络打印机找不到,详细教您网络打印机找不到怎么办...
  11. 世纪佳缘 小秘书 (可自动吸引异性关注)
  12. Mac关闭某个软件的所有窗口
  13. sublime text3配置sublimelinter配合pep8和pyflakes检查python书写规范和语法
  14. Maxio MAS0902A贴英特尔B16A颗粒速度测试
  15. 澳拳击袋鼠体型巨大 身高超2米体重近200斤
  16. 银企直连增加支付货币的配置方法 :事务FBZP
  17. 安卓苹果手机有效清除微信浏览器内部缓存
  18. perspective
  19. MTK,QAC运用minicom和tftp进行uboot
  20. 设置Visual Studio颜色主题

热门文章

  1. 【雷丰阳-谷粒商城 】课程概述
  2. 【数字电路】数字电子时钟设计
  3. Simulink系列 —— S-function的使用笔记(1)
  4. plus钱包受黑客攻击_如何保护您的在线业务免受黑客攻击
  5. 七大开放式联网企业商业模式
  6. 格理论与密码学(二)
  7. 如何做用户画像分析?
  8. caffe中的各种loss函数
  9. 3KAB,贴片五脚芯片规格书
  10. 如何用python制作三维动画_python-如何在m??atplotlib中更新3D箭头动画