Python 操作Excel表格详解、xlrd 和 xlwt、实战应用
程序员文章站
2022-03-11 22:59:37
文章目录一、模块简介xlrd介绍xlwt介绍操作的excel表格信息二、功能用法详解xlrd用法详解xlwt用法详解三、用法实战xlrd读取表格中所有数据xlrd读取表格结果xlwt写入指定数据保存excelxlwt写入excel结果一、模块简介xlrd介绍xlrd是Python用来读取excel表格中数据的;支持xls和xlsx类型的excel文件;xlwt介绍xlwt是Python用来写入excel表格数据的三方库;Python那种一般使用xlrd读取excel数据,使用xlwt写入...
文章目录
一、模块简介
xlrd介绍
- xlrd是Python用来读取excel表格中数据的;
- 支持xls和xlsx类型的excel文件;
xlwt介绍
- xlwt是Python用来写入excel表格数据的三方库;
- Python那种一般使用xlrd读取excel数据,使用xlwt写入excel数据
操作的excel表格信息
二、功能用法详解
xlrd用法详解
对上面表格信息进行操作,方面理解
# _*_ encoding:utf-8 _*_
import xlrd
# excel文件路径
excel_path = u'D:/extract/cs.xlsx'
# 打开excel表格
workbook = xlrd.open_workbook(excel_path)
# 获取所有sheet(工作薄)数目
print(workbook.nsheets) # 结果 : 2
# 获取所有的工作薄名称,返回一个list里面包含左右的sheet名称字符串
print(workbook.sheet_names()) # 结果 : ["学生信息", "学生地址"]
# 获取所有工作薄对象
print(workbook.sheets()) # 结果 : [<xlrd.sheet.Sheet object at 0x0000000013355438>, <xlrd.sheet.Sheet object at 0x00000000133554E0>]
# 根据索引获取对应的sheet对象,相当于workbook.sheets()[0]
print(workbook.sheet_by_index(0)) # 结果 : <xlrd.sheet.Sheet object at 0x0000000012F91438>
# 根据sheet名称获取sheet对象
print(workbook.sheet_by_name(u'学生信息')) # 结果 : <xlrd.sheet.Sheet object at 0x0000000012F91438>
# todo 单独对一张表格进行操作
table = workbook.sheets()[0]
# 获取表格名称
print(table.name) # 结果 : 学生信息
# 获取表格的行数
print(table.nrows) # 结果 : 5
# 获取表格的列数
print(table.ncols) # 结果 : 4
# 获取指定行数据,返回Cell对象list,获取第二行数据
print(table.row(1))
# 获取指定列数据,返回Cell对象list,获取第二列数据
print(table.col(1))
# 获取指定行数据,返回list,获取第三行数据
print(table.row_values(2)) # 结果 : ["大花", 5.0, "女", "二年级"]
# 获取指定列数据,返回list,获取第二行数据
print(table.col_values(1)) # 结果 : ["年龄", 3.0, 5.0, 8.0, 6.0]
# 获取指定位置的数据,第二行,第四列
print(table.cell_value(1,3)) # 结果 : 一年级
xlwt用法详解
这里这篇文章写的很好,推荐参考一下,博主这里就偷一下懒,哈哈哈,
python xlwt写入excel操作
三、用法实战
将excel文件中数据读取,并且转换成如下格式
'''
{ '学生信息':[{'姓名':'','年龄':'','性别':'','班级':''},{..}...]
'学生地址':[{'姓名':'','地址':'','邮编':'',},{..}...]
}
'''
xlrd读取表格中所有数据
# _*_ encoding:utf-8 _*_
import xlrd
def xlrd_excel(excel_path):
# 数据格式化字典
data_info = {}
# 读取文件
workbook = xlrd.open_workbook(excel_path)
# 遍历工作薄sheet
for table in workbook.sheets():
# 存放字典信息的list
info_list = []
table_name = table.name # sheet名称
table_top = table.row_values(0) # sheet 表头
# 根据行数遍历表格数据,剔除表头信息
for i in range(1,table.nrows):
row_info = table.row_values(i) # 获取指定行数据
# 将list中的数据float类型转成int
row_info = [int(f) if isinstance(f,float) else f for f in row_info]
row_dict = dict(zip(table_top,row_info)) # 将表头与行数据转换成字典格式
# row_dict 结果 {"地址": "北京", "邮编": 1001.0, "姓名": "二狗"}
info_list.append(row_dict)
data_info[table_name] = info_list
return data_info
excel_path = u'D:/extract/cs.xlsx'
print(xlrd_excel(excel_path))
xlrd读取表格结果
{"学生信息": [{"年龄": 3, "性别": "狗", "班级": "一年级", "姓名": "二狗"}, {"年龄": 5, "性别": "女", "班级": "二年级", "姓名": "大花"},
{"年龄": 8, "性别": "男", "班级": "三年级", "姓名": "张三"}, {"年龄": 6, "性别": "男", "班级": "二年级", "姓名": "九瓜"}],
"学生地址": [{"地址": "北京", "邮编": 1001, "姓名": "二狗"}, {"地址": "山东", "邮编": 1003, "姓名": "大花"},
{"地址": "上海", "邮编": 1005, "姓名": "张三"}, {"地址": "河南", "邮编": 1000, "姓名": "九瓜"}]}
xlwt写入指定数据保存excel
将上面输出的格式化数据保存到excel文件中
# _*_ encoding:utf-8 _*_
import xlwt
def xlwt_excel(excel_path, data_info):
# 创建workbook 设置编码
work_book = xlwt.Workbook(encoding='utf-8')
for key,info_lt in data_info.items():
# 创建一个工作表sheet
work_sheet = work_book.add_sheet(key)
# 写入表头数据
for i,f in enumerate(info_lt[0].keys()):
work_sheet.write(0,i,f)
# 遍历数据
for index,dt in enumerate(info_lt):
col = 0 # 列位置
# 写入数据
for _,v in dt.items():
work_sheet.write(index + 1, col, v)
col += 1
# 保存数据
work_book.save(excel_path)
dd = {"学生信息": [{"年龄": 3, "性别": "狗", "班级": "一年级", "姓名": "二狗"}, {"年龄": 5, "性别": "女", "班级": "二年级", "姓名": "大花"},
{"年龄": 8, "性别": "男", "班级": "三年级", "姓名": "张三"}, {"年龄": 6, "性别": "男", "班级": "二年级", "姓名": "九瓜"}],
"学生地址": [{"地址": "北京", "邮编": 1001, "姓名": "二狗"}, {"地址": "山东", "邮编": 1003, "姓名": "大花"},
{"地址": "上海", "邮编": 1005, "姓名": "张三"}, {"地址": "河南", "邮编": 1000, "姓名": "九瓜"}]}
excel_path = u'D:/extract/xlwt.xls'
xlwt_excel(excel_path, dd)
xlwt写入excel结果
本文地址:https://blog.csdn.net/weixin_43796109/article/details/107665201
上一篇: 安卓逆向之篡改apk名称和图标
下一篇: 2021年 VUE 3学习知识点规划