博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读取xml文件,写入excel
阅读量:6174 次
发布时间:2019-06-21

本文共 2315 字,大约阅读时间需要 7 分钟。

  在上一篇 已经将所有订单写入xml文件,这一篇我们把xml文件中的内容读出来,写入excel文件。

  输入xml格式:

1 
2
3
4
姓名1
5
123456
6
成都
7
2
8
9
10
姓名2
11
234567
12
成都
13
5
14
15
16
姓名3
17
345678
18
成都
19
1
20
21
View Code

  输出excel格式(这里按点餐次数进行的降序排序):

  工具库选择:beautifulsoup+lxml用于处理xml文件(当然也可直接使用lxml), xlsxwriter用于写excel文件。

  思路也比较简单:找出xml文件中的每一个<order>,然后进行降序排序,再将每一个order信息写入excel文件,每个order一行。

  代码如下:

1 # coding: utf-8 2  3 import bs4 4 import xlsxwriter 5  6 # 读取xml文件,写入excel 7 def xmlToExcel(file_xml, file_excel): 8     # 打开xml文件,并以此创建一个bs对象 9     xml = open(file_xml, 'r')10     doc = bs4.BeautifulSoup(xml, 'xml')11 12     # 创建一个excel文件,并添加一个sheet,命名为orders13     workbook = xlsxwriter.Workbook(file_excel)14     sheet = workbook.add_worksheet('orders')15 16     # 设置粗体17     bold = workbook.add_format({
'bold': True})18 19 # 先在第一行写标题,用粗体20 sheet.write('A1', u'姓名', bold)21 sheet.write('B1', u'电话', bold)22 sheet.write('C1', u'点餐次数', bold)23 sheet.write('D1', u'地址', bold)24 25 # 筛选出所有的
,这里使用的是CSS选择器26 order = doc.select('order')27 28 # 以每个order的count元素,对order进行降序排序29 sort_key = lambda a: int(a.count.text)30 order.sort(key=sort_key, reverse=True)31 32 # 行号,具体订单信息从第二行开始33 row = 234 # 将每一个订单写入excel35 for x in order:36 # 提取出具体信息37 name = x.customer.text38 phone = x.phone.text39 cnt = x.count.text40 addr = x.address.text41 42 # 将具体信息写入excel43 sheet.write('A%d' % row, name)44 sheet.write('B%d' % row, phone)45 sheet.write('C%d' % row, cnt)46 sheet.write('D%d' % row, addr)47 48 row += 149 50 # 关闭文件51 xml.close()52 workbook.close()53 54 # 测试代码55 if __name__ == '__main__':56 file1 = 'hh.xml'57 file2 = 'hehe.xlsx'58 59 xmlToExcel(file1, file2)

 

转载于:https://www.cnblogs.com/haigege/p/5722048.html

你可能感兴趣的文章
【云宏大讲坛】超融合,融合的不仅是基础架构
查看>>
pytnon入门的一些小实例
查看>>
ubuntu下的dock工具
查看>>
饿了么被上海市市场监督局予以警告处分
查看>>
Java项目读取配置文件时,找不到指定的文件???
查看>>
lua/luajit and tcc
查看>>
前端安全即JS代码安全,前端源码安全探讨!
查看>>
如何快速实现异地不同网络打印机共享
查看>>
openinstall免费服务对App推广有哪些作用?
查看>>
基于Docker的微服务CI CD流水线
查看>>
学好SEO需要掌握哪些知识要点?
查看>>
JetBrains GoLand macv2019.1.2中文版如何换成无牵引模式?
查看>>
电气火灾监控系统工作原理
查看>>
中使馆驳斥《金融时报》“中国网络威胁论”
查看>>
【挨踢人物传】茶乡浪子:“传奇”职场路,一生感谢情(第12期)
查看>>
我的友情链接
查看>>
c#关于数据库连接操作的案例
查看>>
聊聊最近接触的媒体查询!
查看>>
HAproxy指南之haproxy重定向应用(案例篇)
查看>>
学习 HTTP协议挺不错的一个类
查看>>