xml与Excel转换

使用Python将如下xml格式转换为Excel格式:

xml转为xls格式文件:

xml格式如下:

<?xml version="1.0" encoding="UTF-8"?>   

<photos>   

        <photo src="assets/images/001/3.jpg" desc="把兰花种进去!"/>      

        <photo src="assets/images/002/1.jpg" desc="每天都要锻炼身体哦!"/>   

        <photo src="assets/images/001/1.jpg" desc="我们在种兰花!"/>       

        <photo src="assets/images/001/2.jpg" desc="先把泥巴挖开!"/>   

</photos>  

通过使用lxml模块创建xml文件,使用xlwt模块创建Excel文件,转换方法如下

#coding:utf-8

#xml与Excel相互转换

from lxml import etree

import xlwt as xlwt



wb=xlwt.Workbook()

ws=wb.add_sheet("employee")



tree=etree.parse("employee2.xml")

root=tree.getroot()



row=0

col=0



for item in root:

    if len(item.attrib)==0:

        continue

        

    row=row+1

    col=0

    

    for attr in item.attrib:

        print attr

        ws.write(row,col,item.attrib[attr])

        col=col+1

        

wb.save("test.xls")

 最后结果如下:

 

 xls格式文件转换为xml:

 xls格式文件如下:

xls转换为xml:

#coding:utf-8

from lxml import etree

import xlrd,codecs



def getPathFileName(path):

    tmp=path.split('/')

    return tmp[len(tmp)-1].split('.')[0]

    



def xlsToxmlPath(path):

    return path.split('.')[0]+'.xml'

    

def export(path):

    data=xlrd.open_workbook(path,formatting_info=True)

    table=data.sheets()[0]

    

    f=open(xlsToxmlPath(path),'wb')

    f.write(u'<?xml version="1.0"  encoding="utf-8" ?>\n')

    f.write(u'<%s>\n'% getPathFileName(path))

    

    for i in range(1,table.nrows):

        s=u'<item';

        tmp = [u'   %s = "%s"' % (str(table.cell_value(0,j)), str(table.cell_value(i,j))) for j in range(table.ncols)];

        

        s+=u' '.join(map(str,tmp));

        s+=u'>\n';

        f.write(s);

        

    f.write(u'</%s>'%getPathFileName(path));

    

export('test.xls')

 结果为:

<?xml version="1.0"  encoding="utf-8" ?>

<test>

<item   src = "assets/images/001/3.jpg"    content = "aa">

<item   src = "assets/images/002/1.jpg"    content = "bb">

<item   src = "assets/images/001/1.jpg"    content = "cc">

<item   src = "assets/images/001/2.jpg"    content = "dd">

</test>

 

 

 

你可能感兴趣的:(Excel)