python在做爬虫时会涉及到数据存储问题,下面说一下将数据存储在excel表格中,主要使用扩展类xlwt,下面详细说一下,主要涉及到了数据列,背景,名称等参数。
说明:python3.7、window环境
一、类库安装
pip install xlwt
复制
二、示例代码
# -*- coding: utf-8 -*-
import xlwt
import time
# 生成表格文件
def create_file(content):
# 初始化样式
style_head = xlwt.XFStyle()
# 初始化字体相关
font = xlwt.Font()
font.name = "微软雅黑"
font.bold = True
# 必须是数字索引
font.colour_index = 1
# 初始背景图案
bg = xlwt.Pattern()
# May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
bg.pattern = xlwt.Pattern.SOLID_PATTERN
# May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray
bg.pattern_fore_colour = 4
# 设置字体
style_head.font = font
# 设置背景
style_head.pattern = bg
# 创建一个excel
excel = xlwt.Workbook(encoding='utf-8')
# 添加工作区
sheet = excel.add_sheet("演示表格")
# xlwt中是行和列都是从0开始计算的
first_col_1 = sheet.col(1)
first_col_3 = sheet.col(3)
# 设置创建时间宽度
first_col_1.width = 256 * 15
# 设置存储路径列宽度
first_col_3.width = 256 * 100
# 标题信息
head = ["序号", "插入时间", "标题", "英文名称"]
for index, value in enumerate(head):
sheet.write(0, index, value, style_head)
# 循环写入
for index, value_list in enumerate(content, 1):
for i, value in enumerate(value_list):
sheet.write(index, i, value)
# 保存excel
file_name = time.time()
excel.save("./%s.xls" % file_name)
return file_name
if __name__ == '__main__':
data_list = [
(0, 1580719141, '视频|有你,才有胜利!', 'You are the winner!'),
(1, 1580719142, '中央军委批准!军队承担武汉生活物资配送供应任务',
"Approved by the Central Military Commission! The military undertakes the task of distribution and supply of living materials in Wuhan")
]
data = create_file(data_list)
print("success")
print(data)
复制
三、导出效果
四、注意事项
1、开发过程中遇到了生成文件名后缀为xlsx格式,无法打开,故设置为xls格式。
2、设置列宽时需要注意,xlwt是从0开始计数的。
===================================================
python操作excel主要用到 xlrd 和 xlwt 这两个库,xlrd读取excel表格数据, 支持 xlsx和xls格式的excel表格 ;xlwt写入excel表格数据;
一、python读取excel表格数据
1、读取excel表格数据常用操作
|
2、xlrd模块的主要操作
|
3、读取单元格内容为日期时间的方式
- 若单元格内容的类型为date,即ctype值为3时,则代表此单元格的数据为日期
- xlrd.xldate_as_tuple(xldate, datemode):若xldate数据为日期/时间,则将转化为适用于datetime的元组 , 返回值为元组,格式为:(year, month, day, hour, minute, nearest_second)
- xldate:sheet对象中单元格的数据
- datemode:日期模式
|
4、 读取合并单元格的数据
若表格为xls格式的,打开workbook时需将formatting_info设置为True,然后再获取sheet中的合并单元格;若表格有xlsx格式的,打开workbook时保持formatting_info为默认值False,然后再获取sheet中的合并单元格;
SheetObject.merged_cells:获取sheet中合并单元格的信息,返回值为列表;若sheet对象中无合并单元格,则返回值为空列表;列表中每个单元格信息的格式为:(row_start, row_end, col_start, col_end); row_start表示合并单元格的起始行; row_end表示合并单元格的结束行; col_start表示合并单元格的起始列;col_end表示合并单元格的结束列;合并单元格的行取值范围为[row_start, row_end),包括row_start,不包括row_end;合并单元格的列取值范围为[col_start, col_end),包括col_start,不包括col_end;如:(1, 3, 4, 6):表示从第1到2行合并,从第4到第5列合并;
读取合并单元格数据仅需merged_cells数据中的row_start和col_start这两个索引即可
|
二、python写入excel表格数据
1、写入excel表格数据常用操作和格式设置
|
2、字体颜色和背景颜色对应索引号字体颜色:font.colour_index背景颜色:pattern.pattern_fore_colour