openpyxl:主要处理xlxs格式的excel文件
from openpyxl import load_workbook
2、加载工作薄
wb = load_workbook("/Users/shan/Desktop/测试.xlsx")
//默认打开是可读写的
3、打开工作表
# 打开工作表
sheet = wb['data']
# 获取活跃的工作表
sheet = wb.active
# 获取所有的工作表
wb.sheetnames
# 工作表名称
title = sheet.title
4、单元格操作
# 获取单元格指定行指定列
print(sheet.cell(2, 2).value)
print(sheet['B2'].value)
# 往单元格写入数据
sheet.cell(1, 3).value = "版本"
sheet.cell(2, 3, "人教版")
sheet['B1'].value = "城市"
# 获取表的最大行
sheet.max_row
# 获取表的最大列
sheet.max_column
# 获取多个单元格
tuple = sheet['A1:C1']
tuple = sheet[1:2]
5、使用迭代器读取
# 逐行读取,返回一行为一个元祖
cell = sheet.iter_rows(min_row=1, max_row=6, min_col=1, max_col=3, values_only=True)
for key in cell:
print(key)
# 逐列读取,一列为一个元祖
cell1 = sheet.iter_cols(min_col=1, max_col=2, min_row=2, max_row=3, values_only=True)
for key in cell1:
print(key)
6、插入删除单元格
sheet.insert_rows(idx=2, amount=3)
sheet.delete_rows(idx=2, amount=3)
sheet.delete_cols(idx=3,amount=2)
7、最后记得保存
wb.save("/Users/shan/Desktop/测试.xlsx")
from openpyxl import load_workbook
from openpyxl import Workbook
def readexcel(filename):
wb=load_workbook(filename)
sheet=wb['data']
sheet=wb.active
#取表头
data=sheet['A1':'C1']
list=[]#key值
for cell in data:
for key in cell:
list.append(key.value)
#按行读取
cell_rows=sheet.iter_rows(min_row=2,max_row=sheet.max_row,min_col=1,max_col=sheet.max_column,values_only=True)
data=[]
# 读取value,与title合并
for key in cell_rows:
list1=[]#每行的value
for cell in key:
list1.append(cell)
data.append(dict(zip(list,list1)))
return data
data=readexcel("/Users/shan/Desktop/测试.xlsx")
print(data)
结果:
[{
'id': 1, 'city': '北京', 'banben': '全国版'}, {
'id': 2, 'city': '上海', 'banben': '全国版'}, {
'id': 3, 'city': '深圳', 'banben': '全国版'}, {
'id': 4, 'city': '成都', 'banben': '人教版'}, {
'id': 5, 'city': '重庆', 'banben': '上海版'}]