我们现在来实现将某个目录下的所有excel文件转成xml文件到指定的目录中。新生成的xml文件名称使用excel文件名。 当然这个的前提得会解析excel文件,上一篇文章说了python如何解析excel文件。这里使用python 自带的xml库:xml.dom来生成xml。

由于脚本比较简单,就不细说了,代码里也有比较详细的注释。先看看excel文件所在的目录:

只需要将解析的代码稍作修改添加生成xml的代码就OK了。看看python脚本:

#! encoding=utf-8import xlrd
import xml.dom.minidom
import osdef open_excel(file):try:data = xlrd.open_workbook(file)return dataexcept Exception, e:print str(e)def translate_excel_to_xml(excel_absolute_path, name, generate_xml_dir, colnnameindex=0, by_index=0):#解析excel文件data = open_excel(excel_absolute_path)#获取需要的工作表table = data.sheets()[by_index]        #行数nrows = table.nrows#列数ncols = table.ncols#创建dom文档对象doc = xml.dom.minidom.Document()#创建根元素info = doc.createElement('info')#将根元素添加到文档中区doc.appendChild(info)for nrow in range(4, nrows):#创建元素item = doc.createElement('item')for ncol in range(0, ncols):#colnames = table.col_values(ncol)#print colnames
#            print table.cell(nrow, ncol).valuekey = u"%s" % table.cell(0, ncol).valuevalue = table.cell(nrow, ncol).valueif isinstance(value, float):value = '%0d' % value
#            print type(key), type(value)#将数据都作为xml中元素的属性,属性名就是第一行的值,属性值就是某一行某一列的值item.setAttribute(key.encode('utf-8'), value.encode('utf-8'))
#            print table.cell(0, ncol).value#将此元素作为根元素的子节点info.appendChild(item)#要生成的xml文件名generate_xml_name = name.strip().split('.')[0] + '.xml'#要生成的xml文件到某个目录的绝对路径geneate_xml_dir = os.path.join(generate_xml_dir, generate_xml_name)f = open(geneate_xml_dir, 'w')
#    doc.writexml(f)f.write(doc.toprettyxml())          #可以使生成xml有好看的格式,要是不需要,可以使用上一行的代码f.close()def find_assign_xlsx(xlsx_path, generate_xml_dir):for name in os.listdir(xlsx_path):if name.endswith('.xlsx'):#生成excel文件的绝对路径excel_absolute_path = os.path.join(xlsx_path, name)#解析excel并转成xmltranslate_excel_to_xml(excel_absolute_path, name, generate_xml_dir)if __name__ == "__main__":excel_src_path = r'D:\mobile_game_dir\newSVN\callOfSteel\trunk\Design\数据'generate_xml_dir = r'D:\data'find_assign_xlsx(excel_src_path.decode('utf-8'), generate_xml_dir)

代码其实是很简单的,代码里有很详细的注释了,这里需要特别注意的是,由于目录路径很有中文,python内部使用的unicode编码,这Windows的简体中文版本使用的中文编码不相同,需要将路径转成unicode编码,还有一种写法,这样也行find_assign_xlsx(u'D://mobile_game_dir//newSVN//callOfSteel//trunk//Design//数据', generate_xml_dir),这里没用使用r,python会将路径名转换,我直接写成左双斜杠来避免路径名出错,这个可以自己随便写。

我这里把生成的xml文件放到D盘下的data目录中了,看看生成后的data目录吧:

很方便吧,所有的excel文件都转成xml了。为了验证是否正确,我们随便打开一个excel文件看看:

再看看D盘data目录下的道具.xml文件:

可以看的出来,没什么问题。由于python的简明和第三方库强大,写这种小脚本是非常方便和简单的。

python 将目下的excel全部转xml文件到指定的目录相关推荐

  1. Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)

    ava 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包) 假设现在要做一个通用的导入方法: 要求: 1.xml的只定义数据库表中的column字段,字段类型,是否非空等条件 ...

  2. 转载,python处理excel转换成xml文件

    帖子来源http://blog.csdn.net/u014489596/article/details/41285933,http://blog.csdn.net/u014489596/article ...

  3. python大神-Python大神都是这样处理XML文件的!

    最近有同学询问如何利用Python处理xml文件,特此整理一个比较简洁的操作手册,供大家参阅. 首先准备一个xml文件,xml中的内容如下所示.存储为:student.xml 如果要获取这个xml里面 ...

  4. python xmlns 解析_使用python读取标记中包含xmlns的XML文件

    我试图从xml文件中读取一个元素来添加新元素. 我试图找到的标签包含xmlns. 它看起来像这样: 我的python代码如下所示: import xml.etree.ElementTree as xm ...

  5. python将json数据集转成voc xml文件

    代码 # -------------------------------------------------------- # Written by YuTing Zhang, based on py ...

  6. 把Excel转换成xml文件

    /*** 读取Excel并转换* @param file 获取到的文件* @return Map<String,List<String>> 把表头和表体以键值对的形式保存*/p ...

  7. 在Excel中打开XML文件

    XML 是元标记语言,它提供用于描述结构化数据的格式.XML 是标准通用标记语言 (SGML) 的子集,适合通过 Web 显示.它由万维网联盟 (W3C) 定义,可确保结构化数据的一致性,并可使结构化 ...

  8. python 读取csv带表头_python读csv文件时指定行为表头或无表头的方法

    pd.read_csv()方法中header参数,默认为0,标签为0(即第1行)的行为表头.若设置为-1,则无表头.示例如下: (1)不设置header参数(默认)时: df1 = pd.read_c ...

  9. Tomcat在自定义xml文件中配置虚拟目录

    在实际开发中,如果,经常在server.xml文件中,配置虚拟目录会有一个弊端 就是,每次修改server.xml文件之后,想要文件生效,必须重新启动Tomcat服务器 为了解决这个问题,可以采用另外 ...

最新文章

  1. es mysql 预处理_数据库选型之MySQL vs ElasticSearch
  2. matplotlib.transforms
  3. 一个方法搞定安卓路由跳转
  4. python 求组合数最快方法_Python-生成符合条件的大集合组合的最有效方法?
  5. 前端知识点总结---面试专用
  6. mysql语法题_mysql数据库题语法练习
  7. Gartner数据劲爆:阿里全球第三,华为中国第二!
  8. ab st语言编程手册_从零开始学习ST/SCL编程语言:一赋值及条件执行指令的讲解...
  9. xml转java代码_java 中xml转换为Bean实例解析(纯代码)
  10. 计算机表演赛bug,只会编程序,敲代码,找bug?不,他们保研浙大、去美国进修……...
  11. 0930_C/C++笔试题_12:16道c语言面试【6/7】
  12. 使用ComponentOne C1WebGrid控件
  13. 李克秋 加盟天津大学 计算机学院,17 天津大学
  14. 跳棋c语言课程设计,C语言课程设计(论文)-跳棋--154591860.doc
  15. Python求圆的面积和周长
  16. 计算机与科学技术专业毕业设计,计算机科学与技术专业毕业设计论文
  17. OpenCV的viz库学习(一)
  18. 复制文本到word中时产生底色的去除方法
  19. 有序关系中的上界+上确界+下界+下确界
  20. Linux企业化运维--(7)redis服务之redis配置及主从复制、主从自动切换、集群、redis+mysql、gearman实现数据同步

热门文章

  1. 腾讯会议多开一个账号同时登陆手机和电脑
  2. 深度学习笔记其七:计算机视觉和PYTORCH
  3. java无参_Java中无参无返回和无参带返回的类型方法
  4. Motivated Word (1)
  5. 下载stm32f4xx标准外设库
  6. CryEngine5.3(学习)
  7. 从0和1开始,揭开数字世界的神秘面纱
  8. 存储故障时的ORA-7445错误
  9. 又写无关IT的东西:经济学术语
  10. 童瑶担任奥伦纳素“冰白大使”,高端护肤品类加速扩张中国市场