xml与Excel转换

摘要:
使用Python将如下xml格式转换为Excel格式:xml转为xls格式文件:xml格式如下:通过使用lxml模块创建xml文件,使用xlwt模块创建Excel文件,转换方法如下#coding:utf-8#xml与Excel相互转换fromlxmlimportetreeimportxlwtasxlwtwb=xlwt.Workbook()ws=wb.add_sheettree=etree.parseroot=tree.getroot()row=0col=0foriteminroot:iflen==0:continuerow=row+1col=0forattrinitem.attrib:printattrws.writecol=col+1wb.save最后结果如下:xls格式文件转换为xml:xls格式文件如下:xls转换为xml:#coding:utf-8fromlxmlimportetreeimportxlrd,codecsdefgetPathFileName:tmp=path.split('/')returntmp[len-1].split('.')[0]defxlsToxmlPath:returnpath.split('.')[0]+'.xml'defexport:data=xlrd.open_workbooktable=data.sheets()[0]f=openf.write(u'˂?

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

xml转为xls格式文件:

xml格式如下:

<?xml version="1.0" encoding="UTF-8"?>   
<photos>   
        <photo src="http://t.zoukankan.com/assets/images/001/3.jpg" desc="把兰花种进去!"/>      
        <photo src="http://t.zoukankan.com/assets/images/002/1.jpg" desc="每天都要锻炼身体哦!"/>   
        <photo src="http://t.zoukankan.com/assets/images/001/1.jpg" desc="我们在种兰花!"/>       
        <photo src="http://t.zoukankan.com/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")

最后结果如下:

xml与Excel转换第1张

xls格式文件转换为xml:

xls格式文件如下:

xml与Excel转换第2张

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" ?>
')
    f.write(u'<%s>
'% 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'>
';
        f.write(s);
        
    f.write(u'</%s>'%getPathFileName(path));
    
export('test.xls')

结果为:

<?xml version="1.0"  encoding="utf-8" ?>
<test>
<item   src = "http://t.zoukankan.com/assets/images/001/3.jpg"    content = "aa">
<item   src = "http://t.zoukankan.com/assets/images/002/1.jpg"    content = "bb">
<item   src = "http://t.zoukankan.com/assets/images/001/1.jpg"    content = "cc">
<item   src = "http://t.zoukankan.com/assets/images/001/2.jpg"    content = "dd">
</test>

免责声明:文章转载自《xml与Excel转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SonarQube和Maven的集成转两个数仓建模文章下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Office Open XML学习(1)创建excel文档,并向单元格中插入字符串

做企业级应用,跟office打交道是少不了的。这里的Office不仅仅局限于微软的Office,还有第三方的Open Office之类。.Net传统的Office操作方法(比如OleDB,OWC之类),有几大缺点: 一是不通用(仅能处理微软的Office,不能与其它非Windows平台交换数据),二是性能差(导出一个Excel,如果记录数上万条,速度很慢)...

java微信二次第三方开发,token认证,消息事件接收,图文素材库,自定义菜单等功能

基于之前的文章SSM配置的项目:http://www.cnblogs.com/mangyang/p/5168291.html 来进行微信第三方开发, 微信二次开发,官方还是网上有很多介绍了,这里就不在进行讲述了 直接上干货。 首先 与微信对接,服务器配置,需要80端口和443端口开放的服务器,这里推荐 使用 python 的pagekite,一款反向代理...

C#调用WebService

1.1、Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。 XML:(Extensible Mark...

POI转换word doc文件为(html,xml,txt)

在POI中还存在有针对于word doc文件进行格式转换的功能。我们可以将word的内容转换为对应的Html文件,也可以把它转换为底层用来描述doc文档的xml文件,还可以把它转换为底层用来描述doc文档的xml格式的text文件。这些格式转换都是通过AbstractWordConverter特定的子类来完成的。  1 转换为Html文件 将doc文档转换...

其他查询

1、SELECT INTO 从一个表中选取数据,然后把数据插入另一个表中。常用于创建表的备份或者用于对记录进行存档。 语法: SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename IN 子句可用于向另一个数据库中拷贝表。 1)备份表信息 SEL...

java生成解析xml的另外两种方法JAXB

   JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示...