自动化打开表格-常用模块------openpyxl

openpyxl是一个用于读写Excelxlsx/xlsm/xltx/xltm文件的Python库。它允许用户创建、读取和修改Excel文件,包括访问工作簿、工作表和单元格,以及设置样式和格式。工作簿包含多个工作表,每个工作表由多个单元格组成,可以通过行列定位单元格。此外,还可以进行插入和删除行、列,以及调整列宽和行高等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础知识:

openpyxl模块

中文文档:https://www.osgeo.cn/openpyxl/index.html

工作簿、工作表、单元格之间的关系:

—个工作簿(workbook)由多个工作表(worksheet)组成;

一个工作表有多个单元格(cell)组成; 

通过行(row)和列(column)可以定位到单元格。

新建并写入文件
.Workbook():新建excel文件,新建文件时默认有一个名为Sheet工作表

打开并读取文件
. load_workbook(path):加载指定路径的excel文件 ,可加参数:data_only=True,data_only=True作用主要是防止表格里面有公式,如果有公式可直接读取公式计算后的值,避免输出公式。

工作簿对象

wb.active :获取第一张工作表对象。

wb[sheet_name] :获取指定名称的工作表对象. wb.sheetnames :获取所有工作表名称

wb.worksheets:获取所有工作表对象,wb.worksheets[0]可以根据索引获取工作表,0代表第一个。

wb.create_sheet(sheet_name,index=end"):创建并返回一个工作表对象,默认位置最后,0代表第一个。

wb.copy_worksheet(sheet):在当前工作簿复制指定的工作表并返回复制后的工作表对象。

wb.remove(sheet):删除指定的工作表。

ws.save(path):保存到指定路径path的Excel文件中,若文件不存在会新建,若文件存在会覆盖。

单元格读取

ws['A1']:根据坐标获取单个单元格对象。

ws.cell(row, column, value=None):根据行列获取单个单元格对象。

ws.max_row:获取最大行数。

ws.max_column:获取最大列数。

ws.append(["","",""]):往表格对应列添加数据。

ws[1]:获取第一行所有单元格对象,ws[" 1"]也可。

ws["A'"]:获取第A列所有单元格对象。

ws["A"."B"]:获取A到B列所有单元格对象,ws["A:B"]也可ws[1:2]:获取1到2行所有单元格对象,ws["1:2""]也可。

ws[*A1":"B2"]:获取A1到B2范围所有单元格对象,ws["A1:B2"]也可。

 单元格对象

cell.value :获取或设置值. cell.column :数字列标.

cell.column_letter :字母列标. cell.row :行号

cell coordinate : 坐标,例如'A1'

cell.data_type:数据类型,'s' = string字符串,n'= number数值,会根据单元格值自动判断.

cell.number_format:单元格格式,默认"General"常规,详见excel自定义数据类型

 单元格样式

cell.font:获取或设置单元格Font对象(字体名称,字体大小,是否加粗,字体颜色等)

cell.border :获取或设置单元格边框

cell.alignment :获取或设置单元格水平/垂直对齐方式

cell.fill:获取或设置单元格填充颜色

列宽与行高

ws.row_dimensions[行号]:获取行对象(非行数据,包括行的相关属性、行高等)

ws.column_dimensions[字母列标]:获取列对象(非行数据,包括行的相关属性、列宽等)

 get_column_letter(index):根据列的索引返回字母

column_index_from_string(string):根据字母返回列的索引row.height:获取或设置行高

column.width:获取或设置列宽

如何根据输入内容计算其在excel的列宽是多少?
利用GBK编码方式,非汉字字符占1个长度,汉字字符占2个长度

插入和删除行和列

插入和删除行、列均使用数字指定

ws.insert_rows(row_index,amount=1):在第row_index行上方插入amount列,默认插入1列. ws.insert_cols(col_index,amount=1):在第col_index列左侧插入amount列,默认插入1列. ws.delete_rows(row_index,amount=1): 从row_index行开始向下删除amount行,默认删除1行. ws.delete_cols(col_index,amount=1): 从col_index列开始向右删除amount行,默认删除1列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值