📜  在 python 中保存到 xlsx(1)

📅  最后修改于: 2023-12-03 14:51:05.524000             🧑  作者: Mango

在 Python 中保存到 xlsx

在许多数据分析和处理任务中,将数据保存为 Excel 文件是非常常见的需求。在本文中,我们将介绍如何在 Python 中使用第三方库将数据保存为 xlsx 文件。我们将涵盖以下主题:

  • 安装必要的库
  • 创建 xlsx 文件并写入数据
  • 添加样式和格式
  • 保存 xlsx 文件
安装必要的库

我们可以使用 openpyxl 库创建和编辑 xlsx 文件。您可以使用以下命令轻松安装 openpyxl:

!pip install openpyxl
创建 xlsx 文件并写入数据

我们可以使用 openpyxl 的 Workbook 类创建新的 xlsx 文件。以下是创建 xlsx 文件和在其中写入数据的示例代码:

# 导入必要的库
from openpyxl import Workbook

# 创建一个新工作簿
workbook = Workbook()

# 获取工作表
sheet = workbook.active

# 写入标题
sheet['A1'] = '姓名'
sheet['B1'] = '年龄'
sheet['C1'] = '地址'

# 写入数据
data = [
    ('Alice', 25, '北京'),
    ('Bob', 30, '上海'),
    ('Charlie', 35, '广州'),
]

for row in data:
    sheet.append(row)

# 打印工作表
print(sheet)

输出:

<Worksheet "Sheet">

如上所述,我们首先创建一个新的 Workbook 对象,然后通过调用 active 属性获取对默认工作表的引用。接下来,我们在 A1, B1 和 C1 单元格中写入标题,并使用循环将数据写入剩余行中。最后,我们打印工作表来验证数据是否已成功写入。

添加样式和格式

使用 openpyxl,我们可以为单元格添加样式和格式。以下是您可以使用 openpyxl 设置的一些属性:

  • font:字体属性,如字体类型,字体大小和字体颜色。
  • fill:填充属性,如单元格颜色,渐变,图案和纹理。
  • alignment:对齐属性,如文字对齐,缩进和旋转。
  • border:边框属性,如线条样式,线条颜色和背景色。

以下是向单元格添加样式和格式的示例代码:

# 导入必要的库
from openpyxl import Workbook
from openpyxl.styles import Font, Fill, Alignment, Border, Side

# 创建一个新工作簿
workbook = Workbook()

# 获取工作表
sheet = workbook.active

# 写入标题
sheet['A1'] = '姓名'
sheet['B1'] = '年龄'
sheet['C1'] = '地址'

# 写入数据
data = [
    ('Alice', 25, '北京'),
    ('Bob', 30, '上海'),
    ('Charlie', 35, '广州'),
]

for row in data:
    sheet.append(row)

# 设置标题单元格的样式和格式
title_font = Font(name='Calibri', size=14, bold=True)
title_fill = Fill(start_color='D9D9D9', end_color='D9D9D9', fill_type='solid')
title_alignment = Alignment(horizontal='center', vertical='center')
title_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))
title_style = title_font + title_fill + title_alignment + title_border

sheet['A1'].font = title_font
sheet['A1'].fill = title_fill
sheet['A1'].alignment = title_alignment
sheet['A1'].border = title_border

sheet['B1'].font = title_font
sheet['B1'].fill = title_fill
sheet['B1'].alignment = title_alignment
sheet['B1'].border = title_border

sheet['C1'].font = title_font
sheet['C1'].fill = title_fill
sheet['C1'].alignment = title_alignment
sheet['C1'].border = title_border

# 设置数据单元格的样式和格式
data_font = Font(name='Calibri', size=12)
data_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))

for row in sheet['A2:C4']:
    for cell in row:
        cell.font = data_font
        cell.border = data_border

# 打印工作表
print(sheet)

输出:

<Worksheet "Sheet">

如上所述,我们使用 Font, Fill, Alignment 和 Border 类来定义标题和数据单元格的样式,并将它们与加号运算符组合。然后,我们将样式应用于单元格。

保存 xlsx 文件

最后,我们需要将我们的数据保存为 xlsx 文件,我们可以使用 Workbook 类的 save() 方法。以下是将数据保存为 xlsx 文件的示例代码:

# 导入必要的库
from openpyxl import Workbook
from openpyxl.styles import Font, Fill, Alignment, Border, Side

# 创建一个新工作簿
workbook = Workbook()

# 获取工作表
sheet = workbook.active

# 写入标题
sheet['A1'] = '姓名'
sheet['B1'] = '年龄'
sheet['C1'] = '地址'

# 写入数据
data = [
    ('Alice', 25, '北京'),
    ('Bob', 30, '上海'),
    ('Charlie', 35, '广州'),
]

for row in data:
    sheet.append(row)

# 设置标题单元格的样式和格式
title_font = Font(name='Calibri', size=14, bold=True)
title_fill = Fill(start_color='D9D9D9', end_color='D9D9D9', fill_type='solid')
title_alignment = Alignment(horizontal='center', vertical='center')
title_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))
title_style = title_font + title_fill + title_alignment + title_border

sheet['A1'].font = title_font
sheet['A1'].fill = title_fill
sheet['A1'].alignment = title_alignment
sheet['A1'].border = title_border

sheet['B1'].font = title_font
sheet['B1'].fill = title_fill
sheet['B1'].alignment = title_alignment
sheet['B1'].border = title_border

sheet['C1'].font = title_font
sheet['C1'].fill = title_fill
sheet['C1'].alignment = title_alignment
sheet['C1'].border = title_border

# 设置数据单元格的样式和格式
data_font = Font(name='Calibri', size=12)
data_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))

for row in sheet['A2:C4']:
    for cell in row:
        cell.font = data_font
        cell.border = data_border

# 保存工作簿
workbook.save('data.xlsx')

如上所述,我们只需要添加一个保存语句,将 xlsx 文件保存到本地磁盘中。请注意,如果文件名未指定路径,则文件将保存在 Python 脚本正在运行的当前目录中。

结论

在本文中,我们介绍了如何在 Python 中使用 openpyxl 库将数据保存为 xlsx 文件。我们涵盖了如何创建 xlsx 文件,添加样式和格式以及将数据保存为 xlsx 文件。希望这篇文章对你有所帮助,感谢你的阅读!