用Python将 Excel 数据导出到 xml.doc_第1页
用Python将 Excel 数据导出到 xml.doc_第2页
用Python将 Excel 数据导出到 xml.doc_第3页
用Python将 Excel 数据导出到 xml.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用Python,将 Excel 数据导出到 xml 在windows软件开发中经常会遇到配置信息的保持读取。简单配置信息经常会快速的想到 .ini当配置信息稍微复杂一些的时候我们通常会很快想到用 xml 来配置,在后台开发中,xml概念则更强。基本小型配置信息也用 xml 来配置在游戏开发中,通常会提到一个配置信息相关概念 表格,在各个系统的设计当中通常会考虑到系统是表格驱动,在不同的人员眼里,表格 代表不同。在策划眼里,通常代码强大 excel 表格,在程序眼里通常是 xml 或者特殊的二进制格式表格驱动有一个很大的好处,就是高度灵活的可配置性。这样只要不是大规模改动,通常可以策划该表就完成功能,而不需要到改动程序。为了很好的实现系统的表格驱动,通常都会用一套机制实现excel和xml的转换。本来心里一直有想法,想做一个 excel 到 xml 的 小转换工具,一直太忙,念头也就慢慢消失了。这两天偷得半日闲,在网上看到接触到Python的excel解析工具包,就试着写了下。以前虽也知道python ,但从没认真学过,这次也算python入门了。先谈谈总体设计:一个满足需求的excel解析封装:XLS2XML_excelPares, 主要提供一些从 excel 读取数据的接口一个满足需求的xml 写入封装 :XLS2XML_xmlWrite, 主要提供一些对 xml 写入的 接口还有一个是配置管理器:XLS2XML_ConfigManager, 主要定义 xls 与 xml 格式转换的标准,类似 xml 的 xsdXLS2XML_excelPares 细节:由于在转的过程中,主要涉及的操作是 从 excel 读取数据,然后写入 xml, 所以在设计XLS2XML_excelPares 模块的时候就更多倾向于封装 读取数据这里主要封装了三个接口,打开加载 excel 文件,定位 sheet, 获取 sheet 里面的对应位置的数据OpenXLs(xlsName), GetSheet(SheetName), ReadXLSItem(sheet, rowIndex, colIndex)XLS2XML_xmlWrite 细节:在转的过程中,相关xml的操作绝大部分是写入操作,所以考虑封装写接口,xml的写入设计到一个路径概念,所以这个封装需要把路径解析放入,然后输出到文件CreateXML(xmlName)AddElemnt( parent, path, value )WireteXML(xmlTab)XLS2XML_ConfigManager 是一个格式定义,这个格式定义其实已经在前面两个模块做了一些隐性引用,这里只是把这些规则,明确化,然后规则可以通过外部输入,用一句话来说明这个配置模块的定义:把 哪 些 excel 里面的 哪 些数据,已 哪 种格式输出到 哪 个xml通过简单分析就知道XLS2XML_ConfigManager 该定义哪些数据了。 把上面话的中的所有的 哪 定义出来就可以了excelName, excelSheet, excelSheetItem, xmlItemName, xmlFileName所以每一个数据都通过 上述的 五个信息可以精确的从 excel 转到 xml , 大致的接口就是CreateTabConfig(tabname)AddSheet(tabConfig, excelName, excelSheet)AddItem(excelSheetItem, xmlItemName)ConvertXML(tabConfig, xmlFileName)有了上面的设计概念,实现就相当简单了,具体代码页不在这里贴了。通过上面的小工具对数据做如下转换:转成:后记:其实以前也尝试过用 C+ 来做这个,参考过 libxl, 用这个其实也很方便,一个 libxl, tinyxml, 就搞定了在上述的设计中,有一个小的扩展没有提到 默认值选项,值替换选项,这些选项其实也可以很容易的加入到上述的设计中,这里不在累述Sign Clown 2010.8.24 22:19 HDPY,本文原创,转载请注明出处,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论