python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python创建并保存Excel到字节串

使用Python创建并保存Excel文件到字节串

作者:大丸子

在日常的数据分析与业务处理过程中,Excel 文件依然是最常用的数据存储与展示工具,在一些自动化场景下,我们希望能够通过代码生成 Excel 文件,并将其内容直接保存为字节串以便传输、存储或进一步处理,本文将详细介绍如何使用Python创建并保存Excel文件到字节串

在日常的数据分析与业务处理过程中,Excel 文件依然是最常用的数据存储与展示工具。无论是销售报表、财务明细还是库存清单,Excel 都能直观地展示数据。然而,在一些自动化场景下,我们希望能够通过代码生成 Excel 文件,并将其内容直接保存为字节串(byte stream)以便传输、存储或进一步处理。这种方式特别适用于 Web 后端、云存储或者接口返回 Excel 文件的场景。

本文将详细介绍如何使用 Free Spire.XLS for Python 创建 Excel 工作簿、写入数据,并将生成的 Excel 文件保存到内存中的字节串。我们会通过一个销售数据示例,从零开始讲解整个流程。

通过 pip 安装:

pip install spire.xls.free

1. 初始化工作簿并创建工作表

首先,我们需要创建一个新的 Excel 工作簿,并添加一个工作表来存放数据。为了保证表格整洁,默认生成的空工作表会被移除。

from spire.xls import Workbook

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

# 移除默认创建的空工作表
workbook.Worksheets.Clear()

# 添加一个新的工作表,命名为“销售数据”
sheet = workbook.Worksheets.Add("销售数据")

说明
Workbook 对象表示整个 Excel 文件,Worksheets.Add() 方法用于添加工作表,并可通过名称区分不同表格。这样,我们就可以在代码中完全控制 Excel 文件的结构。

2. 写入表头与数据

接下来,我们在工作表中写入表头信息,并填充示例销售数据。表头信息包括“产品名称”、“销售额”和“销售日期”。

# 写入表头
sheet.Range["A1"].Value = "产品名称"
sheet.Range["B1"].Value = "销售额"
sheet.Range["C1"].Value = "销售日期"

# 示例数据
data = [
    ("笔记本电脑", 1200.50, "2023-10-01"),
    ("智能手机", 800.75, "2023-10-05"),
    ("平板电脑", 500.00, "2023-10-10"),
    ("显示器", 300.20, "2023-10-15"),
    ("键盘", 75.99, "2023-10-20"),
]

# 写入数据
for i, row_data in enumerate(data):
    row_index = i + 2  # 从第二行开始写入数据
    sheet.Range[row_index, 1].Value = row_data[0]  # 产品名称
    sheet.Range[row_index, 2].NumberValue = row_data[1]  # 销售额(数字类型)
    sheet.Range[row_index, 3].Value = row_data[2]  # 销售日期

关键说明

3. 简单格式设置

为了让表格更美观,我们可以设置表头字体加粗,并让列宽自适应内容。

# 设置表头字体加粗
sheet.Range["A1:C1"].Style.Font.IsBold = True

# 自动调整列宽
sheet.AutoFitColumn(1)
sheet.AutoFitColumn(2)
sheet.AutoFitColumn(3)

说明
通过 AutoFitColumn() 方法,列宽会根据内容自动调整,避免文字显示不完整的问题;表头加粗则让数据更易区分。

4. 将 Excel 文件保存到字节串

在某些应用场景下,我们不希望直接生成文件,而是将 Excel 内容保存到内存中的字节串,以便后续操作或网络传输。

import io
from spire.xls import FileFormat, Stream

# 创建 BytesIO 对象
excel_stream = io.BytesIO()

# 创建 Stream 对象
excelStream = Stream()

# 将工作簿保存到内存流中,格式为 XLSX(FileFormat.Version2016)
workbook.SaveToStream(excelStream, FileFormat.Version2013)

# 将内存流保存到文件用于测试
excelStream.Save("output/output.xlsx")

# 将内存流转换为字节串
excel_stream.write(excelStream.ToArray())

# 获取字节串
excel_bytes = excel_stream.getvalue()

# 释放资源
workbook.Dispose()
excel_stream.close()

print(f"生成的Excel字节串长度: {len(excel_bytes)} 字节")

说明

生成文件预览:

总结

通过本文示例,我们展示了如何使用 Python 和 Spire.XLS 完整地生成 Excel 文件、写入数据、进行基础格式设置,并将文件内容保存为内存字节串。这种方法在 Web 后端、数据接口、自动报表生成等场景下非常实用,既避免了中间文件存储,也提高了处理效率。

掌握 WorkbookWorksheetRange 等核心类和属性,能够让你轻松实现 Excel 自动化处理,减少人工操作,提高工作效率。同时,通过将 Excel 文件保存为字节串,还能满足更复杂的业务需求,例如生成下载文件流、上传云端存储或进行二进制处理。

以上就是使用Python创建并保存Excel文件到字节串的详细内容,更多关于Python创建并保存Excel到字节串的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文