我们用
excel
保存之前所获取的数据,这里利用xlwt做excel表格操作
1. 数据获取
之前的数据获取函数中,我们将最后的数据以列表形式保存,这里主要接受当时收集的数据,做解析插入
2. 表格初始化
配置表格的基础属性,加粗、字体号等等
def set_style(name, height, bold=False):
style = xlwt.XFStyle()
font = xlwt.Font()
font.name = name
font.bold = bold
font.color_index = 4
font.height = height
style.font = font
return style
3. 数据写入
I. 初始化Workbook对象
f = xlwt.Workbook()
II. 新建表格
两张表,赶集和自如
sheet1 = f.add_sheet('赶集', cell_overwrite_ok=True)
sheet2 = f.add_sheet('自如', cell_overwrite_ok=True)
III. 生成表头
对应不同的数据内容,生成相对应的表头,用列表保存表头信息,直接将数据写入第一行的每一列,同时设定列宽
row_zr = ["标题", "标签", "价格(元/月)", "大小", "位置", "网页链接"]
row_gj = ["标题", "简介", "价格(元/月)", "位置", "中介", "网页链接"]
for i in range(0, len(row_gj)):
sheet1.col(i).width = 256 * 50
sheet1.write(0, i, row_gj[i], set_style('Times New Roman', 260, True))
for i in range(0, len(row_zr)):
sheet2.col(i).width = 256 * 50
sheet2.write(0, i, row_zr[i], set_style('Times New Roman', 260, True))
IV. 写入数据
初始化一个起始值为
1
的整数保存行数值,从数据中解析出想要的格式化执行插入这一行(从第一行开始),每次插入之后行值+1
,对下一行进行同样操作,因为这里我们的数据是利用嵌套列表构造的,所以需要先取出数据再做列扩展循环
def write_excel(result_gj, result_zr):
f = xlwt.Workbook()
sheet1 = f.add_sheet('赶集', cell_overwrite_ok=True)
sheet2 = f.add_sheet('自如', cell_overwrite_ok=True)
row_zr = ["标题", "标签", "价格(元/月)", "大小", "位置", "网页链接"]
row_gj = ["标题", "简介", "价格(元/月)", "位置", "中介", "网页链接"]
num_gj, num_zr = 1, 1
default_style = set_style('Times New Roman', 300, False)
for i in range(0, len(row_gj)):
sheet1.col(i).width = 256 * 50
sheet1.write(0, i, row_gj[i], set_style('Times New Roman', 260, True))
for i in range(0, len(row_zr)):
sheet2.col(i).width = 256 * 50
sheet2.write(0, i, row_zr[i], set_style('Times New Roman', 260, True))
for data in result_gj:
for i in range(0, len(row_gj)):
sheet1.write(num_gj, i, data[i], default_style)
num_gj += 1
for data in result_zr:
for i in range(0, len(row_zr)):
sheet2.write(num_zr, i, data[i], default_style)
num_zr += 1
f.save('houses.xls')
- 代码参考Github
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦