本帖最后由 fancymch 于 2013-4-10 12:16 编辑
咱最近在用PYTHON写EXCEL导出到XML工具。稍微写几个常用的代码,写的不好,希望大神勿喷!纯属个人喜好~~
#咱用了以下模块,可能有无用的~~
# -*- coding: utf-8 -*-
import os
import sys
import re
import win32com.client
from INIFILE import INIFILE
from xml.dom import minidom
from xml.dom.minidom import Document
from EXCEL import easyExcel
#得到当前路径
curdir = os.path.abspath('.')
>>>>curdir为当前你的.py所在的路径
#读取文件
inifile = INIFILE((curdir+'\\TaskTable.ini').decode('utf-8'))
=====这里我用了网上写了一个CLASS类。
>>>>这里是.PY所在路径下的一个名为TaskTable的配置文件,用UTF-8读取,我的ini是保存的以UTF-8无BOM格式。
关于INI文件配置什么的,可以自己定义配置,这个我就不写了
#二维列表,作为读取EXCEL中单元格而存储。
G = [[0 for L in xrange(0,Lie)] for H in xrange(0,Hang)]
print "Excel start"
excelfile = easyExcel(xlsx) #这里我用了网上的EXCEL类,作用是打开EXCEL
if excelfile.Init():
for i in xrange(0,Hang):
for j in xrange(0,Lie):
G[j] = excelfile.getCell(sheet, i+1, j+1) #这里把EXCEL中第sheet页中的X行Y列内容赋值到G[j]列表中,EXCEL中从1行1列。
#取整,去除格式,转化字符串
if isinstance(G[j],float):
G[j] = int(round(G[j]))
G[j] = '%d' %G[j]
G[j] = '%s' %G[j]
G[j] = G[j].replace("\n","\\n")
G[j] = G[j].strip()
G[j] = G[j].replace("None","")
excelfile.close()
print "Excel finish"
#到这里EXCEL就完结了
#开始XML操作
doc = minidom.Document()
tasks = doc.createElement("tasks")
doc.appendChild(tasks)
aaa = doc.createComment(u"这里是注释") #这里写注释 u的话可以排除直接用CMD运行的编码错误
tasks.appendChild(aaa)
task = doc.createElement("task") #这里创建
task.setAttribute("id", G[0]) #这里写数据
tasks.appendChild(task) #这里添加
xmlText = doc.toprettyxml(indent = " ", newl = "\n", encoding = "utf-8") #这里写格式啥的
xmlFile = open(xml.decode('utf-8'), 'w') #这里打开XML文件,用UTF-8打开
xmlFile.write(xmlText)
xmlFile.close()
#XML操作结束
写到这里就差不多结束了。纯属个人喜好,望大神勿喷!
运行结果
<?xml version="1.0" encoding="utf-8"?>
*本站禁止HTML标签噢*
<!--这里是注释-->
<task id="10001">
</task>
</tasks>
大致就这样。结束~~