前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python openpyxl 读写

python openpyxl 读写

作者头像
用户5760343
发布2022-01-10 08:22:23
7750
发布2022-01-10 08:22:23
举报
文章被收录于专栏:sktjsktj

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')

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.05.17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 默认可读写,若有需要可以指定write_only和read_only为True
  • 获得所有sheet的名称
  • 根据sheet名字获得sheet
  • 获得sheet名
  • 获得当前正在显示的sheet, 也可以用wb.get_active_sheet()
  • 获取某个单元格的值,观察excel发现也是先字母再数字的顺序,即先列再行
  • 分别返回
  • 除了用下标的方式获得,还可以用cell函数, 换成数字,这个表示B4
  • 获得最大列和最大行
  • 因为按行,所以返回A1, B1, C1这样的顺序
  • A1, A2, A3这样的顺序
  • 根据列的数字返回字母
  • 根据字母返回列的数字
  • 直接赋值就可以改工作表的名称
  • 新建一个工作表,可以指定索引,适当安排其在工作簿中的位置
  • 删除某个工作表
  • 直接给单元格赋值就行
  • B9处写入平均值
  • 添加一行
  • 添加多行
  • 设置B1中的数据垂直居中和水平居中
  • 第2行行高
  • C列列宽
  • 合并单元格, 往左上角写入数据即可
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档