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

openpyxl

作者头像
TomatoCool
发布2023-07-30 17:20:33
2720
发布2023-07-30 17:20:33
举报
文章被收录于专栏:TomatoCoolTomatoCool

openpyxl用来操作xlsx文件(不支持xls文件) 以下用wb代表WorkBook类,ws代表WorkSheet类,cell代表单元格。

工作簿:

工作簿可以看作一个xlsx文件。

  • WorkBook() 类 新建一个工作簿对象
  • load_workbook() 函数 导入一个已有的工作簿
  • wb.save() 方法 保存工作簿。

示例:

代码语言:javascript
复制
from openpyxl import *

#  新建一个工作簿对象
wb = Workbook()
#  保存工作簿
wb.save('hello.xlsx')

#  加载工作簿
wb = load_workbook('hello.xlsx')

工作表:

使用wb['title']获取名为title的工作表

  • wb.create_sheet('title') 方法 创建一个名为title的工作表
  • wb.sheetnames 属性 以列表形式返回所有工作表名称
  • wb.active 属性 返回当前活动的工作表对象
  • ws.title 属性 返回工作表名称

示例:

代码语言:javascript
复制
from openpyxl import *

#  新建一个工作簿对象
wb = Workbook()

#  新建两个的工作表,0表示在第一个位置插入,-1在倒数第二个,默认倒数第一个
#  title1在最后一个位置插入
#  title2在倒数第二个位置插入
ws1 = wb.create_sheet('title1')
ws2 = wb.create_sheet('title2', -1)

#  获取当前工作表
ws = wb.active

#  输出工作表名称
print(ws.title)

#  切换到title2
ws = wb['title2']

#  切换到title2
wb.active = 1
ws = wb.active
  • ws.max_row 属性 获取存在数据的最大一行索引
  • ws.min_row 属性 获取存在数据的最小一行索引
  • ws.max_column 属性 获取存在数据的最大一列索引
  • ws.min_column 属性 获取存在数据的最小一列索引
  • ws.insert_rows(i,n) 方法 从第i行插入n行(包括i),默认一行
  • ws.insert_cols(j,n) 方法 从第j列插入n列(包括j),默认一行
  • ws.delete_rows(i,n) 方法 从第i行删除n行(包括i),默认一行
  • ws.delete_cols(j,n) 方法 从第j列删除n列(包括j),默认一行
  • wb.copy_worksheet('title') 方法 返回title表的复制
  • ws.sheet_properties.tabColor 属性 表的颜色,例如#304050

单元格:

单元格的选择:

代码语言:javascript
复制
#  选择A1单元格
cell = ws['A1']

#  选择A2到B3的单元格
cells = ws['A2': 'B3']
cells = ws['A2: B3']

#  选择第2行到第3行的单元格
cells = ws[2: 3]

#  选择第A列到第B列的单元格
cells = ws['A': 'B']
cells = ws['A: B']

#  选择所有行/列
cells = ws.rows
cells = ws.columns

#  iter_rows()方法与iter_cols()方法
#  参数:min_col, max_col, min_row, max_row, values_only
#  参数:最小列,最大列,最小行,最大行,是否只返回值
#  返回第1,2列,3,4行的所有行
cells = ws.iter_rows(1, 2, 3, 4,True)

单元格的值:

使用ws['A1'].value获取A1的值 使用ws['A2': 'B3'].values获取A2到B3的值,每行为一个元组

单元格属性:

  • cell.row 单元格行索引
  • cell.column 单元格列索引
  • cell.column_letter 单元格列名
  • cell.coordinate 单元格坐标
  • cell.data_type 单元格值类型,返回n/s/d,数字/字符串/日期
  • cell.encoding 单元格编码类型
  • cel.has_style 单元格是否有样式
  • cell.style 单元格样式

操作函数:

代码语言:javascript
复制
#  合并单元格
#  参数start,end
#  参数start_row, end_row, start_column, end_column
ws.merge_cells('A1', 'B3')
ws.merge_cells(start_row=1, end_row=2, start_column=3, end_column=4)

#  取消合并单元格
#  参数start,end
#  参数start_row, end_row, start_column, end_column
ws.unmerge_cells('A1', 'B3')
ws.unmerge_cells(start_row=1, end_row=2, start_column=3, end_column=4)

#  插入图片
#  参数,img,anchor
img = Image('hello.png')
ws.add_image(img=img, anchor='A1')

#  颜色填充
#  PatternFill参数:
#  patternType,fgColor,bgColor,填充类型,前景色,背景色
ws['A1'].fill = ws['A1'].fill = PatternFill(patternType='solid', fgColor='203040')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023 年 02 月,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档