python3 生成excel(csv/xls/xlsx)


一、项目背景

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等),方便管理以及后续的使用。

总结

整个代码并不复杂,希望可以帮助到有需要的人。阅读本文的过程中如有任何问题欢迎随时与我联系。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值