网站建设书模板,怎么做视频还有网站吗,桥梁建设 网站,如何建设动漫网站使用python修改Excel中的内容
1.初级修改
1.1 openpyxl库的功能#xff1a;
openpyxl模块是一个读写Excel 2010文档的Python库#xff0c;如果要处理更早格式的Excel文档#xff0c;需要用到额外的库#xff0c;例如Xlwings。openpyxl是一个比较综合的工具#xff0c;能…使用python修改Excel中的内容
1.初级修改
1.1 openpyxl库的功能
openpyxl模块是一个读写Excel 2010文档的Python库如果要处理更早格式的Excel文档需要用到额外的库例如Xlwings。openpyxl是一个比较综合的工具能够同时读取和修改Excel文档。其他很多的与Excel相关的项目基本只支持读或者写Excel一种功能。
1.2 excel文档的基本定义
工作薄(workbook):一个EXCEL文件就称为一个工作薄,一个工作薄中可以包含若干张工作表。工作表(sheet):工作薄中的每一张表格称为工作表,每张工作表都有一个标签,默认为sheet1\sheet2\sheet3来命名(一个工作 薄默认为由3个工作表组成)活动表(active sheet)指当前正在操作的工作表行(row): 工作表中的每一行行首数字(1、2、3、)称为行标题;一张工作表最多有65536行列(column): 列标题:工作表中每一列列首的字母(A、B、C)称为列标题;一张工作表最多有256列单元格(cell): 工作表的每一个格称为单元格
1.3 基本信息表的数据修改
要使用Python批量修改Excel的数据可以使用Python的第三方库openpyxl。
首先需要安装openpyxl库。可以使用以下命令安装
pip install openpyxl然后可以使用以下代码来实现批量修改Excel的数据
from openpyxl import load_workbook# 打开Excel文件
workbook load_workbook(example.xlsx)# 选择要修改的工作表
worksheet workbook[Sheet1]# 遍历要修改的数据
for row in worksheet.iter_rows(min_row2, min_col1, max_col2, values_onlyTrue):# 修改数据new_value1 row[0] 1new_value2 row[1] * 2# 将修改后的数据写回Excelworksheet.cell(rowrow[0].row, column3, valuenew_value1)worksheet.cell(rowrow[0].row, column4, valuenew_value2)# 保存修改后的Excel文件
workbook.save(example_modified.xlsx)以上代码假设要修改的Excel文件名为example.xlsx要修改的工作表名为Sheet1。代码中的min_row、min_col、max_col参数分别指定了要修改的数据的起始行、起始列和结束列。可以根据实际情况进行修改。 代码中使用iter_rows方法遍历要修改的数据并使用values_only参数将数据以元组的形式返回。然后可以根据需要修改数据并使用cell方法将修改后的数据写回Excel。最后使用save方法保存修改后的Excel文件。 执行以上代码后修改后的Excel文件将保存为example_modified.xlsx。 1.4 异常解决 AttributeError: ‘int’ object has no attribute ‘row’ 这是一个AttributeError异常表示在一个整数对象上尝试访问名为’row’的属性时出错。整数对象是没有row属性的。
可能的原因是代码中错误地将一个整数对象作为一个具有row属性的对象来使用。你需要检查代码找到错误的地方并修复它。确保你正在使用正确的对象类型并且在访问属性之前该对象已经被正确地初始化或赋值。
2. 进阶修改
2.1 代码如下
import pandas as pd# 读取Excel文件
df pd.read_excel(input.xlsx)# 遍历每一行数据
for index, row in df.iterrows():# 判断特定条件if row[列名] 特定条件:# 修改数据df.at[index, 需要修改的列名] 修改后的值# 保存修改后的Excel文件
df.to_excel(output.xlsx, indexFalse)其中input.xlsx’是输入的Excel文件名列名’是要判断的列名特定条件’是符合要求的条件需要修改的列名’是要修改的列名修改后的值’是修改后的值。代码中的’output.xlsx’是输出的Excel文件名可以根据实际情况进行修改。 2.2 简单示例
需求使用python批量修改Excel中的数据如果查询到该行某列数据为X开头的字符串则将X替换为BJ1修改并保存后遍历下一行
from openpyxl import load_workbook# 打开Excel文件
workbook load_workbook(data.xlsx)
# 选择第一个工作表
sheet workbook.active# 遍历每一行
for row in sheet.iter_rows(min_row2):# 获取第一列的值value row[0].value# 判断是否以X开头if value.startswith(X):# 替换为BJ1row[0].value BJ1# 保存修改后的Excel文件
workbook.save(modified_data.xlsx)上述代码假设Excel文件名为data.xlsx且数据从第二行开始第一列是需要进行替换的数据。修改后的文件将保存为modified_data.xlsx。 2.3 具体示例
需求使用python批量修改Excel中的数据如果查询到该行某列数据为X开头的字符串则将X替换为BJ1如果为0则替换为“BJ0”如果为9则替换为BJ9修改并保存后继续遍历下一行。
2.4 Excel源文件如下 2.4 代码如下
import openpyxl# 打开Excel文件
workbook openpyxl.load_workbook(变量信息.xlsx)# 选择要操作的工作表
worksheet workbook.active# 遍历每一行
for row in worksheet.iter_rows():# 获取该行的第一个单元格的值cell_value row[1].value# 如果该行的字符串以X开头则将X替换为BJ1并拼接后续字符串同时保存数据if cell_value and str(cell_value).startswith(X or 1):new_value BJ1 str(cell_value)[1:]row[1].value new_valueworkbook.save(001.xlsx)print(new_value)if cell_value and str(cell_value).startswith(0):new_value BJ0 str(cell_value)[1:]row[1].value new_valueworkbook.save(001.xlsx)if cell_value and str(cell_value).startswith(9):new_value BJ9 str(cell_value)[1:]row[1].value new_valueworkbook.save(001.xlsx)# 否则遍历下一行else:continue2.5 运行结果如下