文章目录
一、项目背景
1、项目需求
为方便客户查看,需要将现有数据转存excel格式
2、实施时间
2020-12-15
二、 技术背景
1、阅读文章所需知识背景
1)具有少量python相关经验,了解数组、字典 、for循环语句以及range函数用法
2、开发环境
1)Win10-64
2)Python 3.6.6
3)python类库xlwt 1.3.0
3、开发工具
1)Pycharm 2020.2.2
三、具体代码
import xlwt
# 1.创建 Workbook
wb = xlwt.Workbook()
# 2.创建 worksheet
ws = wb.add_sheet('sheet1')
# 3.写入第一行内容 ws.write(a, b, c) a:行,b:列,c:内容
titleList = ['详情url', '标题', '楼盘名字', '面积大小']
for i in range(0, len(titleList)):
ws.write(0, i, titleList[i])
# 4.写入对应内容
contentList = [{'title': '新村路地铁口 非顶楼边套全明 精装修 满五唯一', 'loupan': '2室1厅 | 55.82平米 | 南 | 精装 | 高楼层(共6层) | 1993年建 | 板楼',
'houseType': '55.82平米', 'area': '南', 'toward': '精装', 'renovation': '高楼层(共6层)',
'positionInfo': '双山小区-甘泉宜川', 'totalPrice': '285万', 'unitPrice': '单价51057元/平米',
'detailUrl': 'https://sh.lianjia.com/ershoufang/107103371545.html'},
{'title': '精装修南北两方 视野宽阔 近地铁 看房方便', 'loupan': '2室1厅 | 53.71平米 | 南 北 | 精装 | 高楼层(共6层) | 1988年建 | 板楼',
'houseType': '53.71平米', 'area': '南 北', 'toward': '精装', 'renovation': '高楼层(共6层)',
'positionInfo': '管弄一二街坊-光新', 'totalPrice': '295万', 'unitPrice': '单价54925元/平米',
'detailUrl': 'https://sh.lianjia.com/ershoufang/107103058018.html'}
]
# 5.所需获取数据对应key
jsonKeyLIst = ['detailUrl', 'title', 'positionInfo', 'houseType']
for i in range(0, len(contentList)):
for j in range(0, len(jsonKeyLIst)):
# 文件中已写入一行title,所以这里写入内容时行号为i+1而非i
# 列号为j
ws.write(i + 1, j, contentList[i][jsonKeyLIst[j]])
# 保存文件
wb.save('./myExcel.csv')
wb.save('./myExcel.xls')
wb.save('./myExcel.xlsx')
四、代码下载
完整代码github地址如下:
https://github.com/zf-wang-52xhw/GenerateExcel
五、编码过程中的思考
1、xls和xlsx对程序带来的影响
xls格式单页最大行数为65535,写入数据行数大于65535时需增加新的sheet(wb.add_sheet(‘sheet1’)),否则可能会导致文件出错。若无特殊需要请尽量选用xlsx格式。若有可能,数据还是尽量存入数据库(postgres等),方便管理以及后续的使用。
总结
整个代码并不复杂,希望可以帮助到有需要的人。阅读本文的过程中如有任何问题欢迎随时与我联系。