Python能够轻松地从字节流中加载文件,在不依赖于外部存储的情况下直接对其进行读取、修改等复杂操作,并最终将更改后的文档保存回字节串中。这种能力不仅极大地提高了数据处理的灵活性,还确保了数据的安全性和完整性,尤其是在网络传输或内存中处理敏感信息时。本文将介绍如何使用Python创建和保存Excel文件到字节流,以及读取和修改字节流中的Excel文件。
本文所使用的方法需要用到Spire.XLS for Python,PyPI:pip install spire.xls
。
Python创建Excel文件并保存到字节流
我们可以通过创建一个Workbook
实例从而创建一个Excel工作簿,然后向其中添加数据并设置好格式,最后使用Workbook.SaveToStream()
方法将其保存到指定的bytes
或bytearray
中。以下是操作步骤示例:
- 导入所需模块。
- 创建
Workbook
对象从而新建一个Excel工作簿,新建的工作簿中会有三个默认工作表。 - 使用
Workbook.Worksheets.get_Item()
方法获取一个工作表。 - 定义数据列表,或从其他地方导入数据。
- 通过
Worksheet.Range.get_Item().Value
或.NumberValue
属性写入数据到工作表中。 - 通过
CellRange.Style
中的属性设置单元格格式。 - 使用
Worksheet.AutoFitColumn()
方法自动调整列宽。 - 创建
Stream
对象。 - 使用
Workbook.SaveToStream()
方法将Excel工作簿保存到Stream
对象。 - 将
Stream
对象转换为bytes
或bytearray
,或写入已有的bytearray
中。 - 释放资源。
代码示例
from spire.xls import Workbook, FileFormat, Stream, Color, HorizontalAlignType
# 创建一个工作簿实例
workbook = Workbook()
# 获取第一个工作表
sheet = workbook.Worksheets.get_Item(0)
# 创建或读取一个二维数据列表
data = [
["书名", "作者", "出版年份", "类型", "价格 (人民币)"],
["了不起的盖茨比", "F. Scott Fitzgerald", 1925, "小说", 10.99],
["杀死一只知更鸟", "Harper Lee", 1960, "小说", 8.99],
["1984", "George Orwell", 1949, "反乌托邦", 7.99],
["傲慢与偏见", "Jane Austen", 1813, "浪漫", 6.99],
["麦田里的守望者", "J.D. Salinger", 1951, "小说", 9.99],
["美丽新世界", "Aldous Huxley", 1932, "反乌托邦", 8.49],
["霍比特人", "J.R.R. Tolkien", 1937,