下面是详细的讲解。
Python自动化之批量处理工作簿和工作表
在日常办公中,Excel是我们经常使用的办公软件之一。然而,有些时候需要对多个工作簿或工作表进行批量处理,手动操作则会很费时费力。这时候,Python的自动化处理能力就派上了用场。接下来将介绍如何使用Python对Excel进行批量处理的实例教程。
1.准备工作
首先,需要安装两个开源库:openpyxl
和pandas
。可以使用pip进行安装:
pip install openpyxl pandas
此外,为了方便代码的编写和运行,可以使用Jupyter Notebook或者其他Python IDE进行编写和运行。
2.打开Excel文件
打开Excel文件,使用openpyxl
库的load_workbook
方法来读取工作簿:
from openpyxl import load_workbook
wb = load_workbook("example.xlsx")
3.选定工作表
使用active
属性选择当前的活动工作表:
ws = wb.active
也可以使用工作表的名称来选中特定的工作表:
ws = wb["Sheet1"]
或者按照索引来选中特定的工作表:
ws = wb.worksheets[0]
4.读取和修改单元格的值
使用ws.cell(row,column)
方法来读取指定行列单元格的值:
cell_1_1 = ws.cell(1,1)
print(cell_1_1.value)
使用ws["A1"]
或者ws["A1"].value
的方式也可以读取单元格的值。如果需要修改单元格的值,只需要进行赋值操作:
ws["A1"] = "Hello"
5.遍历工作表
使用iter_rows
或者iter_cols
方法进行行列迭代,例如:
for row in ws.iter_rows(min_row=1, max_row=5, min_col=1, max_col=3):
for cell in row:
print(cell.value)
print("\n")
可以按照需要修改min_row
、max_row
、min_col
和max_col
参数的值,来选择要遍历的行列范围。
6.新建工作表
如果需要在Excel文件中新建一个工作表,可以使用以下命令:
new_ws = wb.create_sheet("new_sheet")
其中,new_sheet
为新建工作表的名称。
7.删除工作表
如果需要删除工作表,可以使用以下命令:
ws_to_delete = wb["Sheet_to_delete"]
wb.remove(ws_to_delete)
其中,Sheet_to_delete
为需要删除的工作表名称。
8.保存Excel文件
最后,在对Excel文件进行操作之后,需要使用wb.save(filename)
方法来保存更改后的Excel文件:
wb.save("example_new.xlsx")
其中,example_new.xlsx
为新建的Excel文件名。
示例1:在Excel文件中添加一列
以下示例展示了如何在Excel文件中添加一列:
from openpyxl import load_workbook
wb = load_workbook("example.xlsx")
ws = wb.active
# 遍历第一列
for cell in ws["A"]:
# 在第一列后面插入一列B,每个单元格值为A列对应单元格值的两倍
column_b = cell.column + 1
value = cell.value * 2
ws.cell(row=cell.row, column=column_b, value=value)
wb.save("example_new.xlsx")
示例2:在Excel文件中查找特定的字符串
以下示例展示了如何在Excel文件中查找特定的字符串所在的行:
import pandas as pd
data = pd.read_excel("example.xlsx")
# 选择找到想要的数据,并输出其所在的行
rows = data[data["column_name"].str.contains("target_string")].index
print(rows)
其中,column_name
为需要查找的列的名称,target_string
为需要查找的字符串。以上示例输出的是符合查找到的行的索引。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python自动化之批量处理工作簿和工作表 - Python技术站