安装
pip install openpyxl
重装
(1)卸载出问题的库pip uninstall pandaspip uninstall openpyxl(2)重新安装python -m pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simplepython -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 | 获取工作簿中的表(列表) |
WB = vpa.load_workbook(path)print(WB.active)print(WB.worksheets)print(WB.data_only)print(WB.read_only)print(WB.encoding)print(WB.properties)print(WB.sheetnames)"""RESULT:<Worksheet "Sheet1"> # Sheet1 is active[<Worksheet "SheetNo.1">, <Worksheet "Sheet1">] # two worksheet objectsFalse # not data_onlyFalse # not read_onlyutf-8 # encoded by utf-8<openpyxl.packaging.core.DocumentProperties object> # infosParameters: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['SheetNo.1', 'Sheet1'] # Sheet names"""
方法函数
| 方法 | 返回值 | 作用 |
|---|---|---|
| Object = 工作簿[‘工作表名’] | null | 通过表格名称获取Worksheet对象 |
| remove(Object) | null | 删除一个工作表对象【对象】 |
| create_sheet(‘Sheet name’) | null | 创建一个空的表格【表名】 |
| copy_worksheet(Object) | objects | 在Workbook内拷贝表格【对象】 |
WS = WB['Sheet1']WB.remove(WS)WB.create_sheet('New Sheet')WS = WB['New Sheet']WS = WB.copy_worksheet(WS)print(WS.title) # New Sheet CopyWB.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 | 单元格的坐标 |
WS = WB['SheetNo.1']WS2 = WB.worksheets[0]cell = WS['B2']print(cell.value)print(cell.row)print(cell.column)print(cell.coordinate)cell2 = WS.cell(1, 1)print(cell2.value)'''722B21'''
