安装

  1. pip install openpyxl

重装

  1. 1)卸载出问题的库
  2. pip uninstall pandas
  3. pip uninstall openpyxl
  4. 2)重新安装
  5. python -m pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
  6. python -m pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple

对象结构

工作簿对象
对象实例 = 类名.方法名()

工作簿的属性和方法

工作簿对象的属性

属性 作用
active 获取当前活跃的Worksheet
worksheets 以列表的形式返回所有的Worksheet(表格)
data_only 默认为False,为True时只读取数据不显示公式
read_only 判断是否以read_only模式打开Excel文档
encoding 获取文档的字符集编码
properties 获取文档的元数据,如标题,创建者,创建日期等
sheetnames 获取工作簿中的表(列表)
  1. WB = vpa.load_workbook(path)
  2. print(WB.active)
  3. print(WB.worksheets)
  4. print(WB.data_only)
  5. print(WB.read_only)
  6. print(WB.encoding)
  7. print(WB.properties)
  8. print(WB.sheetnames)
  9. """
  10. RESULT:
  11. <Worksheet "Sheet1"> # Sheet1 is active
  12. [<Worksheet "SheetNo.1">, <Worksheet "Sheet1">] # two worksheet objects
  13. False # not data_only
  14. False # not read_only
  15. utf-8 # encoded by utf-8
  16. <openpyxl.packaging.core.DocumentProperties object> # infos
  17. Parameters:
  18. creator='openpyxl', title=None, description=None, subject=None, identifier=None, language=None, created=datetime.datetime(2021, 7, 10, 7, 28, 10), modified=datetime.datetime(2021, 7, 10, 14, 3, 55), lastModifiedBy='费东旭', category=None, contentStatus=None, version=None, revision=None, keywords=None, lastPrinted=None
  19. ['SheetNo.1', 'Sheet1'] # Sheet names
  20. """

方法函数

方法 返回值 作用
Object = 工作簿[‘工作表名’] null 通过表格名称获取Worksheet对象
remove(Object) null 删除一个工作表对象【对象】
create_sheet(‘Sheet name’) null 创建一个空的表格【表名】
copy_worksheet(Object) objects 在Workbook内拷贝表格【对象】
  1. WS = WB['Sheet1']
  2. WB.remove(WS)
  3. WB.create_sheet('New Sheet')
  4. WS = WB['New Sheet']
  5. WS = WB.copy_worksheet(WS)
  6. print(WS.title) # New Sheet Copy
  7. WB.save(path)

工作表的属性和方法

工作表对象
属性

title 工作表的名称
dimensions 表格的大小,这里的大小是指含有数据的表格的大小,即:左上角的坐标:右下角的坐标
max_row 表格的最大行
min_row 表格的最小行
max_column 表格的最大列
min_column 表格的最小列
rows 按行获取单元格(Cell对象) - 生成器 工作表.rows
columns 按列获取单元格(Cell对象) - 生成器 工作表.columns
freeze_panes 冻结窗格 工作表.freeze_panes = “C3”
values 按行获取表格的内容(数据) - 生成器

freeze_panes,参数比较特别,主要用于在表格较大时冻结顶部的行或左边的行。对于冻结的行,在用户滚动时,是始终可见的,可以设置为一个Cell对象或一个单元格坐标的字符串,单元格上面的行和左边的列将会冻结(单元格所在的行和列不会被冻结)。例如我们要冻结第一行那么设置A2为freeze_panes,如果要冻结第一列,freeze_panes取值为B1,如果要同时冻结第一行和第一列,那么需要设置B2为freeze_panes,freeze_panes值为none时 表示 不冻结任何列。

方法

方法 作用
iter_rows 按行获取所有单元格,内置属性有(min_row,max_row,min_col,max_col)
iter_columns 按列获取所有的单元格
append 在表格末尾添加数据
merged_cells 合并多个单元格
unmerged_cells 移除合并的单元格

单元格的属性和方法

单元格对象
属性

属性 作用
row 单元格所在的行
column 单元格坐在的列
value 单元格的值
coordinate 单元格的坐标
  1. WS = WB['SheetNo.1']
  2. WS2 = WB.worksheets[0]
  3. cell = WS['B2']
  4. print(cell.value)
  5. print(cell.row)
  6. print(cell.column)
  7. print(cell.coordinate)
  8. cell2 = WS.cell(1, 1)
  9. print(cell2.value)
  10. '''
  11. 7
  12. 2
  13. 2
  14. B2
  15. 1
  16. '''