1.初识openpyxl

首先,让我们了解一下什么是openpyxl。openpyxl是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm 文件的Python 库。它可以创建新的Excel文件、修改现有的文件,甚至可以读写单元格中的数据、格式和公式。为了使用 openpyxl,我们需要先进行安装:

pip install openpyxl

2.创建新的 Excel 文件

现在,我们来创建一个新的 Excel 文件。在这个过程中,我们会学习如何创建工作簿、添加数据到工作表并保存文件。

from openpyxl import Workbook
#创建一个新的工作簿
wb = Workbook()

#激活默认的工作表
ws = wb.active

#在单元格中写入数据
ws['A1'] = '收入'
ws['B1'] = '支出'

#保存文件
wb.save('test.xlsx')

上面这个代码创建了一个新的 Excel 文件 budget.xlsx,并在第一个工作表的 A1 单元格和 B1 单元格中分别写入了“收入”和“支出”。

3.读取 Excel 文件

接下来,我们看看如何读取现有的 Excel 文件。在这个过程中,我们会学习如何加载工作簿和读取单元格数据。

from openpyxl import load_workbook

#加载现有的工作簿
wb = load_workbook('test.xlsx')

#激活默认的工作表
ws = wb.active

#读取单元格中的数据
income_label = ws['A1'].value
expense_label = ws['B1'].value

print(income_label) #输出:收入
print(expense_label) #输出:支出

这段代码加载了之前创建的 budget.xlsx文件,并读取了 A1 和 B1 单元格中的数据。

4.修改 Excel 文件

我们还可以修改现有的 Excel 文件中的数据,然后保存修改后的文件。


#修改单元格中的数据
ws['A2'] = '5000'
ws['B2'] = '1500'
#保存文件
wb.save('budget_modified.xlsx')

这段代码在 A2 单元格中写入了收入 5000 元,在 B2 单元格中写入了支出 1500 元,并将文件保存为 budget_modified.xlsx。

5.处理多个工作表

有时候,我们需要在一个 Excel 文件中处理多个工作表。下面的代码展示了如何创建新工作表并在不同工作表中写入数据。

#创建新的工作表
ws1 = wb.create_sheet("一月")
ws2 = wb.create_sheet("二月")

#在不同的工作表中写入数据
ws1['A1'] = '收入'
ws1['B1'] = '支出'
ws1['A2'] = 6000
ws1['B2'] = 2000

ws2['A1'] = '收入'
ws2['B1'] = '支出'
ws2['A2'] = 7000
ws2['B2'] = 2500

#保存文件
wb.save('budget_modified.xlsx')

这段代码创建了两个新的工作表“ 一月”和“二月”,并在这些工作表中分别写入了收入和支出数据。

7.实战案例-读取和更新预算数据

最后,我们来看看如何读取和更新预算数据。

from openpyxl import load_workbook

# 加载现有的工作簿
wb = load_workbook('family_budget.xlsx')
ws = wb.active

# 读取某月的预算数据
month = '三月'
for row in ws.iter_rows(min_row=2, values_only=True):
    if row[0] == month:
        print(f"{month}的收入是{row[1]}元,支出是{row[12]}元,剩余预算是{row[3]}")

# 更新某个月的预算数据
for row in ws.iter_rows(min_row=2):
    if row[0].value == '三月':
       row[1].value == 6500 # 更新收入
       row[2].value == 2700 # 更新支出
       row[3].value ==  row[1].value - row[2].value # 重新计算剩余预算

# 保存修改后的文件
wb.save('family_budget.xlsx')

我们读取了三月的预算数据,并更新了三月的收入和支出。

标签 python, excel