openpyxl介绍:
openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档。
openpyxl模块只支持xlsx/xlsm/xltx/xltm格式,不支持xls格式。
openpyxl的官方文档地址在这里:官网文档
安装方式:
打开命令行窗口,执行命令 pip install openpyxl
openpyxl的简单使用入门
使用之前导入模块:
import openpyxl as op
写文件
1、创建一个工作簿,同时创建一个工作表sheet: wb = op.Workbook()
2、创建新的sheet的两种方式:
ws = wb.create_sheet()
在指定位置创建工作表
ws = wb.create_sheet(index=0)
3、设置工作表sheet名字
ws.title = '工作表1'
print(ws.title)
4、上面两步可以使用一句代码实现:创建自定义名字的sheet
ws = wb.create_sheet('工作表2',0)
5、修改sheet表,改变工作表标签颜色,默认为无颜色
ws.sheet_properties.tabColor = "F22F27"
6、激活工作簿,获取index=0的工作表
ws = wb.active
7、在单元格写入数据:
ws['A1'] = 42 在A1单元格写入
ws.cell(row=1, column=2, value=42) 在B1单元格写入
ws.cell(1,3).value= 42 在C1单元格写入
8、新增一行数据:传入数组
ws.append([1, 2, 3, 4])
9、保存工作簿
wb.save('openpyxl.xlsx')
当一个工作表被创建时,其中不包含单元格,只有当单元格被获取时才被创建。
这种方式我们不会创建我们从不会使用的单元格,从而减少了内存消耗;
读文件
def read():
''''''
filename = 'H:/openpyxl.xlsx'
#打开文件
wb = op.load_workbook(filename=filename)
ws = wb.active
print(ws.max_row) # 获取工作表最大行
print(ws.max_column) # 获取工作表最大列
print(ws.calculate_dimension()) # 获取工作表全部数据的单元格区域
#获取所有sheet
for sheet in wb:
print(sheet.title)
#复制工作表
ws_1 = wb.copy_worksheet(ws)
ws_1.title = 'copy'
print(ws.title)
#获取所有工作表sheet
print(wb.sheetnames)
#根据名字获取sheet
ws_2 = wb['copy']
#删除sheet
wb.remove(ws_1)
#del wb['copy']
print(wb.sheetnames)
#read()
def readRange():
filename = 'H:/openpyxl.xlsx'
#打开文件
wb = op.load_workbook(filename=filename)
ws = wb.active
#获取单个单元格值
cell_A2 = ws['A2']
cell_B2 = ws.cell(row=2, column=2)
print(cell_A2.value, cell_B2.value)
# 通过行/列
print(ws['A']) #A列
print(ws['A:B']) #A、B列
print(ws[2]) #第2行
print(ws[2:5]) #2-5行
# 迭代所有行
all_by_row = ws.rows
# 迭代所有列
all_by_col =ws.columns
print(all_by_row,all_by_col)
#获取多个单元格值
cell_area = ws['A1':'B3']
for rows in cell_area:
for cells in rows:
print(cells.value)