如何在不创建文件的情况下生成xls文件内容?

问题描述 投票:0回答:1

我正在 Django REST 服务器上工作,它会进行一些计算。我将这些计算存储为 JSON,我想创建一个端点,该端点将根据这些 JSON 结果生成 .xlsx 文件并将其上传到 AWS S3,如下所示:

s3.meta.client.put_object(
    Bucket = credentials['AWS_BUCKET_NAME'],
    Key=file_path,
    Body=file_content,
)

但是存在问题 - 我检查的用于生成 .xlsx 内容的每个库都在创建一个文件,但我不想这样做。有什么解决办法吗?

我知道我可以生成文件(例如使用“xlsxwriter”),提取内容并删除它,但这种方式似乎不是最好的:D

任何指导将不胜感激。谢谢你

python json python-3.x xlsx xlsxwriter
1个回答
0
投票

正如 Tim Roberts 在评论中所说,我将

io.BytesIO
对象与 xlsxwriter 库一起使用,因为它在 Workbook 对象初始化时具有“in_memory”选项。

output = BytesIO()
workbook = xlsxwriter.Workbook(output, {"in_memory":True})

# After all manipulations with workbook
workbook.close()
output.seek(0)

# Uploading to AWS S3 using "boto3"
s3.meta.client.put_object(
    Bucket=bucket_name,
    Key=file_path,
    Body=output,
)
© www.soinside.com 2019 - 2024. All rights reserved.