python openpyxl 读写

2022-01-10 08:22:23 浏览数 (2)

1、载入: from openpyxl import load_workbook

默认可读写,若有需要可以指定write_only和read_only为True

wb = load_workbook('mainbuilding33.xlsx') 2 获取sheet

获得所有sheet的名称

print(wb.get_sheet_names())

根据sheet名字获得sheet

a_sheet = wb.get_sheet_by_name('Sheet1')

获得sheet名

print(a_sheet.title)

获得当前正在显示的sheet, 也可以用wb.get_active_sheet()

sheet = wb.active 3 获取单元格

获取某个单元格的值,观察excel发现也是先字母再数字的顺序,即先列再行

b4 = sheet['B4']

分别返回

print(f'({b4.column}, {b4.row}) is {b4.value}') # 返回的数字就是int型

除了用下标的方式获得,还可以用cell函数, 换成数字,这个表示B4

b4_too = sheet.cell(row=4, column=2) print(b4_too.value) 4 获得最大列和最小列

获得最大列和最大行

print(sheet.max_row) print(sheet.max_column) 5 获取行和列

因为按行,所以返回A1, B1, C1这样的顺序

for row in sheet.rows: for cell in row: print(cell.value)

A1, A2, A3这样的顺序

for column in sheet.columns: for cell in column: print(cell.value) 6 根据字母获得列号,根据列号返回字母 from openpyxl.utils import get_column_letter, column_index_from_string

根据列的数字返回字母

print(get_column_letter(2)) # B

根据字母返回列的数字

print(column_index_from_string('D')) # 4 7 创建移除工作表 print(wb.get_sheet_names()) # 提供一个默认名叫Sheet的表,office2016下新建提供默认Sheet1

直接赋值就可以改工作表的名称

sheet.title = 'Sheet1'

新建一个工作表,可以指定索引,适当安排其在工作簿中的位置

wb.create_sheet('Data', index=1) # 被安排到第二个工作表,index=0就是第一个位置

删除某个工作表

wb.remove(sheet) del wb[sheet] 8 写入单元格

直接给单元格赋值就行

sheet['A1'] = 'good'

B9处写入平均值

sheet['B9'] = '=AVERAGE(B2:B8)' 9 单元表缀加

添加一行

row = [1 ,2, 3, 4, 5] sheet.append(row)

添加多行

rows = [ ['Number', 'data1', 'data2'], [2, 40, 30], [3, 40, 25], [4, 50, 30], [5, 30, 10], [6, 25, 5], [7, 50, 10], ] 10 保存文件 wb.save(r'D:example.xlsx') 11 字体 from openpyxl.styles import Font, colors, Alignment bold_itatic_24_font = Font(name='等线', size=24, italic=True, color=colors.RED, bold=True)

sheet['A1'].font = bold_itatic_24_font

对齐方式:

设置B1中的数据垂直居中和水平居中

sheet['B1'].alignment = Alignment(horizontal='center', vertical='center')

行高和列宽

第2行行高

sheet.row_dimensions[2].height = 40

C列列宽

sheet.column_dimensions['C'].width = 30

合并拆分单元格

合并单元格, 往左上角写入数据即可

sheet.merge_cells('B1:G1') # 合并一行中的几个单元格 sheet.merge_cells('A1:C3') # 合并一个矩形区域中的单元格 sheet.unmerge_cells('A1:C3')

0 人点赞