700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python xlrd和xlwt操作Excel实现自动化

Python xlrd和xlwt操作Excel实现自动化

时间:2023-02-28 13:01:35

相关推荐

Python xlrd和xlwt操作Excel实现自动化

活动地址:CSDN21天学习挑战赛

目录

一、7大库优缺点对比二、xlrd读取Excel表1、安装xlrd模块2、xlrd读取Excel表1)打开Excel表2)获取全部表名3)指定sheet表4)sheet表的行操作4)sheet表的列操作三、xlwt写入Excel表1、安装xlwt包2、写入单条数据3、多条数据写入4、设置宽度和高度5、自定义单元格样式

一、7大库优缺点对比

二、xlrd读取Excel表

xlrd读取Excel表数据非常快,支持.xls和.xlsx

1、安装xlrd模块

pip install xlrd

2、xlrd读取Excel表

1)打开Excel表

错误:

xlrd-2.0.1不支持xlsx,需要卸载,安装1.2版本,需要自行解决

pip install xlrd=1.2.0

2)获取全部表名

import xlrd#打开文件wb = xlrd.open_workbook("test.xls")list_name = wb.sheet_names()print(list_name)

3)指定sheet表

import xlrd#打开文件wb = xlrd.open_workbook("test.xls")#按名称指定sheet1 = wb.sheet_by_name('test')print(sheet1)#按索引指定,索引是从0开始计算sheet2 = wb.sheet_by_index(0)print(sheet2)

4)sheet表的行操作

参数列表:行数rowx从0开始算起,不包含结束列end_colx,默认值None

import xlrd# 打开文件wb = xlrd.open_workbook("test.xls")# 通过sheet索引获得sheet对象sheet = wb.sheet_by_index(0)print(sheet)# 获取该表总行数nrows = sheet.nrowsprint("总行数是:", nrows)# 显示单行数据,索引从0开始计算print(sheet.row(0))# sheet.row(0) == sheet.row_slice(0) 效果相同print(sheet.row_slice(0))# 显示单行数据 索引从0开始计算print(sheet.row_values(1))# rowx第几行,start_colx从第几列开始,第几列结束 默认值end_colx=Noneprint(sheet.row_values(rowx=2, start_colx=0, end_colx=1))# 行的有效长度print("行的有效长度:", sheet.row_len(0))# 循环打印里面所有数据for i in range(nrows):print(sheet.row_values(i))

4)sheet表的列操作

参数列表 列数colx从0开始算起,不包含结束行end_rowx,默认值None

import xlrd# 打开文件wb = xlrd.open_workbook("test.xls")# 通过sheet索引获得sheet对象sheet = wb.sheet_by_index(0)print(sheet)# 获取该表总列数ncols = sheet.ncolsprint("总列数是:", ncols)# 显示单列数据,索引从0开始计算print(sheet.col(0))# sheet.col(0) == sheet.col_slice(0) 效果相同# 带列名print(sheet.col_slice(0))print("=" * 40)# 不带列名print(sheet.col_slice(0, 1))print("=" * 40)# 循环打印里面所有数据for i in range(ncols):print(sheet.col_values(i))

三、xlwt写入Excel表

xlwt写入Excel表数据,支持.xls和.xlsx

1、安装xlwt包

pip install xlwt

2、写入单条数据

import xlwt# 创建Excel对象 并指定编码格式ws = xlwt.Workbook(encoding='utf-8')# 创建sheet表sheet = ws.add_sheet('sheet1')# 第一个参数是行# 第二个参数是列# 第三个参数需要写入的内容sheet.write(0, 0, 'python')# 保存数据名字和格式ws.save('test1.xls')# 保存正常,但是打开报错,后续在解决ws.save('test2.xlsx')

3、多条数据写入

import xlwt# 定义写入数据data_list = [("张三", 35, '男'), ('李四', 32, '男'), ('凤姐', 33, '女'), ('小明', 12, '男')]# 创建Excel对象 并指定编码格式ws = xlwt.Workbook(encoding='utf-8')# 创建sheet表sheet = ws.add_sheet('sheet1')# 自定义列名表头col_name = ('姓名', '年龄', '性别')# 循环写入sheet表单第一行for i in range(0, len(col_name)):sheet.write(0, i, col_name[i])# 循环写入数据for i in range(0, len(data_list)):data = data_list[i]for j in range(0, len(col_name)):sheet.write(i + 1, j, data[j])ws.save('test1.xls')

结果:

4、设置宽度和高度

sheet.col(“行索引”).width = 256 * 24

sheets.row(“行索引”).height_mismatch = True 默认行高是和文字的高度进行匹配的,即 值是 False,我们设置行高不会生效

sheets.row(“行索引”).height = 20*20 # 其中一个20代表单位,想要行高是多少乘以多少就行了。

import xlwt# 定义写入数据data_list = [("张三", 35, '男'), ('李四', 32, '男'), ('凤姐', 33, '女'), ('小明', 12, '男')]# 创建Excel对象 并指定编码格式ws = xlwt.Workbook(encoding='utf-8')# 创建sheet表sheet = ws.add_sheet('sheet1')# 自定义列名表头col_name = ('姓名', '年龄', '性别')# 循环写入sheet表单第一行for i in range(0, len(col_name)):# 设置宽度sheet.col(i).width = 256 * 24# 设置高度sheet.row(i).height_mismatch = Truesheet.row(i).height = 20*20sheet.write(0, i, col_name[i])# 循环写入数据for i in range(0, len(data_list)):data = data_list[i]for j in range(0, len(col_name)):sheet.write(i + 1, j, data[j])# 设置高度sheet.row(i+1).height_mismatch = Truesheet.row(i+1).height = 20*20ws.save('test1.xls')

5、自定义单元格样式

参数说明:

import xlwt# 定义写入数据data_list = [("张三", 35, '男'), ('李四', 32, '男'), ('凤姐', 33, '女'), ('小明', 12, '男')]# 创建Excel对象 并指定编码格式ws = xlwt.Workbook(encoding='utf-8')# 创建sheet表sheet = ws.add_sheet('sheet1')# 实例化表格样式对象xstyle = xlwt.XFStyle()# 设置字体样式xfont = xlwt.Font()xfont.colour_index = 0x04 # 设置字体颜色xfont.bold = True # 字体加粗xfont.height = 20 * 18 # 设置字体高度(20是基数不变,18是字号用于调整大小)xfont.underline = 0x01 # 设置字体带下划线xfont.name = '华文彩云' # 设置字体# 将字体对象赋值给样式对象xstyle.font = xfont# 自定义列名表头col_name = ('姓名', '年龄', '性别')# 循环写入sheet表单第一行for i in range(0, len(col_name)):# 设置宽度sheet.col(i).width = 256 * 24# 设置高度sheet.row(i).height_mismatch = Truesheet.row(i).height = 20 * 20sheet.write(0, i, col_name[i], style=xstyle)# 循环写入数据for i in range(0, len(data_list)):data = data_list[i]for j in range(0, len(col_name)):sheet.write(i + 1, j, data[j], style=xstyle)# 设置高度sheet.row(i + 1).height_mismatch = Truesheet.row(i + 1).height = 20 * 20ws.save('test1.xls')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。