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 =