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
posted @ 2021-02-01 22:34  昤昽  阅读(138)  评论(0编辑  收藏  举报