openpyxl
用Python处理Excel文件——openpyxl库
创建EXCEL文件对象
import openpyxl
wb = openpyxl.Workbook()
创建工作表
ws1 = wb.create_sheet('sheet_name', index = 1)
# index : 从左往右数第几个sheet,插入到现有sheet中,大于现有长度时插入到末尾
ws1.title # 获取工作表的名称
wb.sheetnames # 返回一个列表,包含所有的sheet的名称
也可以采用如下方式获得sheet名称
for sheet in wb:
print(sheet.title)
通过工作簿的名称获取sheet:
wb["SHEET_NAME"]
写入数据
通过行列指定:
sheet['A1'] = 4 #向sheet工作簿的A1格中写入数字4
通过cell
函数
sheet.cell(row = 2, column = 3, value = 4)
# 向第二行第三列写入数据,即C2单元格
# 行列编号皆从1开始
向sheet最后插入内容
sheet.append([1, 2, 3, 4, 5])
# 向sheet第一行完全空白的行插入[1, 2, 3, 4, 5],在该行中每列写入列表的一个元素
获得某一指定的行/列
column = sheet['A'] #获取列'A'
for cell in column:
print(cell.value)
row = sheet[4] #获取第4列
for cell in row:
print(cell.value)
删除工作表
wb.remove(sheet)
# sheet是一个sheet类型变量
或者
del wb[sheet_name]
# sheet_name是一个string类型变量
删除某一指定行/列
sheet.delete_rows(3) # 删除第3行
sheet.delete_columns(3) #删除第3列
sheet.delete_rows(3, 4) #从第3行开始,共删除4行
sheet.delete_columns(3, 4) #从第3列开始,共删除4列
Excel的读取
from openpyxl import load_workbook
wb = load_workbook(filename = 'FILENAME', read_only = False, write_only = False)
# 通过制定read_only 和write_only 来制定只读或只写
sheet = wb[wb.sheetnames[0]] #获取第一个工作表
sheet['A2'].value #获取A2单元格的内容
获取最大列/行
sheet.max_row
sheet.max_column
按行/列获取数据
for row in sheet.rows:
for cell in row:
print(cell.value)
for column in sheet.columns:
for cell in column:
print(cell.value)
列的字母与数字序号之间的转换
openpyxl.utils.get_column_letter(2) # B
openpyxl.utils.column_index_from_string('ADQ') # 797
column = sheet[openpyxl.utils.get_column_letter(4)] #获取第4列
设置单元格风格
设置字体
bold_italic_24_font = openpyxl.styles.Font(name = 'Monaco', size = 24, italic = True, color = openpyxl.styles.colors.RED, bold = True)
column_letter = openpyxl.utils.get_column_letter(231)
sheet[column_letter + '43'].font = bold_italic_24_font