openpyxl
`openpyxl`用来操作xlsx文件(不支持xls文件) 以下用`wb`代表`WorkBook`类,`w`s代表`WorkSheet`类,`cell`代表单元格。 ## 工作簿 工作簿可以看作一个xlsx文件。 - `WorkBook()` 类 新建一个工作簿对象 - `load_workbook()` 函数 导入一个已有的工作簿 - `wb.save()` 方法 保存工作簿。 ### 示例 ```python 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` 属性 返回工作表名称 ### 示例 ```python 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 ## 单元格 ### 单元格的选择 ```python # 选择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` 单元格样式 ## 操作函数 ```python # 合并单元格 # 参数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-16
|
最后修改:2023-12-27
|
©允许规范转载
酷酷番茄
首页
文章
友链