Python写Excel脚本
1. 引言
在日常工作中,我们经常需要处理大量的数据并将其保存到Excel文件中。Python是一种强大的编程语言,它提供了许多库和工具来处理Excel文件。本文将介绍如何使用Python编写脚本来生成Excel文件,并演示一些示例代码。
2. 安装依赖库
在开始之前,我们需要安装openpyxl
库,它是Python中用于处理Excel文件的常用库。可以使用以下命令来安装它:
pip install openpyxl
3. 创建Excel文件
要创建一个新的Excel文件,我们需要导入openpyxl
库并创建一个工作簿对象。然后,我们可以添加工作表,并在工作表中添加数据。
下面是一个示例代码,演示如何创建一个名为example.xlsx
的Excel文件,并在其中添加一个名为Sheet1
的工作表:
import openpyxl
# 创建工作簿
workbook = openpyxl.Workbook()
# 创建工作表
sheet = workbook.active
sheet.title = "Sheet1"
# 添加数据
sheet["A1"] = "姓名"
sheet["B1"] = "年龄"
sheet["C1"] = "性别"
# 保存文件
workbook.save("example.xlsx")
执行上述代码后,将在当前目录下生成一个名为example.xlsx
的Excel文件,并在其中创建了一个名为Sheet1
的工作表,并添加了标题行。
4. 写入数据
要向Excel文件中的工作表写入数据,我们可以使用sheet.cell()
方法来访问单元格,并使用赋值语句将数据写入单元格。
以下是一个示例代码,演示如何向example.xlsx
文件的Sheet1
工作表中写入数据:
import openpyxl
# 打开工作簿
workbook = openpyxl.load_workbook("example.xlsx")
# 选择工作表
sheet = workbook["Sheet1"]
# 写入数据
sheet["A2"] = "张三"
sheet["B2"] = 25
sheet["C2"] = "男"
# 保存文件
workbook.save("example.xlsx")
执行上述代码后,将在example.xlsx
文件的Sheet1
工作表中的第二行写入了一些数据。
5. 读取数据
要从Excel文件中读取数据,我们可以使用sheet.cell()
方法来访问单元格,并通过value
属性获取其值。
以下是一个示例代码,演示如何从example.xlsx
文件的Sheet1
工作表中读取数据:
import openpyxl
# 打开工作簿
workbook = openpyxl.load_workbook("example.xlsx")
# 选择工作表
sheet = workbook["Sheet1"]
# 读取数据
name = sheet["A2"].value
age = sheet["B2"].value
gender = sheet["C2"].value
print("姓名:", name)
print("年龄:", age)
print("性别:", gender)
执行上述代码后,将会打印出从文件中读取的数据。
6. 表格和样式
openpyxl
库还提供了强大的功能,可以创建具有复杂样式的表格。我们可以设置字体、颜色、边框等,以创建美观的Excel文件。
以下是一个示例代码,演示如何创建具有样式的表格:
import openpyxl
from openpyxl.styles import Font, Color, Alignment, Border, Side
# 创建工作簿
workbook = openpyxl.Workbook()
# 创建工作表
sheet = workbook.active
sheet.title = "Sheet1"
# 设置表头样式
font = Font(bold=True, color="FFFFFF")
fill = PatternFill(start_color="000000", end_color="000000", fill_type="solid")
border = Border(top=Side(border_style="thin", color="000000"),
right=Side(border_style="thin", color="000000"),
bottom=Side(border_style="thin", color="000000"),
left=Side(border_style="thin", color="000000"))
alignment = Alignment(horizontal="center", vertical="center")
header_cells = ["A1", "B1", "C1"]
for cell in header_cells:
sheet[cell].font = font
sheet[cell].fill = fill
sheet[cell].border =