下面我来为您详细讲解一下“python之openpyxl模块的安装和基本用法(excel管理)”的实例教程。
安装openpyxl模块
openpyxl
是一个用于处理Excel电子表格文件的Python模块。您可以通过在终端输入以下命令来安装openpyxl模块:
pip install openpyxl
基本用法
请确保已经正确安装openpyxl模块。我们可以通过以下步骤进行excel管理:
1. 创建一个新的工作簿
from openpyxl import Workbook
wb = Workbook() # 创建工作簿
ws = wb.active # 获取活动工作表
ws.title = "MySheet" # 工作表命名为"MySheet"
wb.save("mysheet.xlsx") # 保存工作簿到本地文件
2. 向工作表中添加数据
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "MySheet"
# 向工作表中添加数据
ws["A1"] = "编号"
ws["B1"] = "名称"
ws["C1"] = "数量"
data = [
(1, "苹果", 10),
(2, "橘子", 20),
(3, "葡萄", 30)
]
for row in data:
ws.append(row)
wb.save("mysheet.xlsx")
以上代码中使用了ws["A1"]
这样的语法来指定单元格,ws.append(row)
可以追加行到工作表中。
3. 读取Excel表格中的数据
import openpyxl
wb = openpyxl.load_workbook("mysheet.xlsx")
ws = wb.active
for row in ws.iter_rows(min_row=2, values_only=True):
print(row)
以上代码中,我们首先使用openpyxl.load_workbook()
函数将Excel工作簿加载到内存中,然后使用ws.iter_rows()
遍历工作表中的行数据,通过使用values_only=True
参数,我们可以获得每行数据的值而非单元格对象。
示例说明
示例一:将不同的数据分别写入到不同的工作表中
以下示例展示如何将名字、性别、职位等信息分别写入到不同的工作表中:
from openpyxl import Workbook
wb = Workbook()
ws1 = wb.create_sheet("Employees")
ws2 = wb.create_sheet("Customers")
# 添加列名
ws1.append(("Name", "Gender", "Position"))
ws2.append(("Name", "Gender", "City"))
employees = [
("Tom", "Male", "Manager"),
("Jerry", "Female", "Deputy Director"),
("Smith", "Male", "Staff")
]
customers = [
("Mary", "Female", "New York"),
("Joe", "Male", "Tokyo"),
("Lucy", "Female", "Beijing")
]
# 将employees中的数据写入employees工作表中
for row in employees:
ws1.append(row)
# 将customers中的数据写入customers工作表中
for row in customers:
ws2.append(row)
wb.save("example.xlsx")
示例二:使用公式计算工作表中的数据
以下示例将工作表中的数据进行求和,并在最后一行中给出结果:
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.worksheet.functions import sum_formula
wb = Workbook()
ws = wb.active
ws.title = "Data"
# 添加测试数据
for row in range(1, 11):
for col in range(1, 4):
_ = ws.cell(column=col,
row=row,
value=col + row)
# 添加公式
for col in range(1, 4):
letter = get_column_letter(col)
ws[f"{letter}11"] = sum_formula(f"{letter}1:{letter}10")
wb.save("example.xlsx")
以上代码中,我们使用了openpyxl.util.get_column_letter()
函数将列数转换成字母,从而使我们能够使用公式函数openpyxl.worksheet.functions.sum_formula()
对工作表中的数字进行求和。
希望本教程对您有所帮助!