📅  最后修改于: 2023-12-03 14:51:05.524000             🧑  作者: Mango
在许多数据分析和处理任务中,将数据保存为 Excel 文件是非常常见的需求。在本文中,我们将介绍如何在 Python 中使用第三方库将数据保存为 xlsx 文件。我们将涵盖以下主题:
我们可以使用 openpyxl 库创建和编辑 xlsx 文件。您可以使用以下命令轻松安装 openpyxl:
!pip install openpyxl
我们可以使用 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 设置的一些属性:
以下是向单元格添加样式和格式的示例代码:
# 导入必要的库
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 文件,我们可以使用 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 文件。希望这篇文章对你有所帮助,感谢你的阅读!