我用Python编写了几行代码,可以使用openpyxl-library从Azure Blob存储中打开Excel文件。代码在Azure Functions中运行。
对内容进行一些修改后,我将创建第二个工作簿,并将原始工作簿中的内容复制到该工作簿中。我将第二个工作簿保存为流。现在,我希望再次将第二个工作簿作为Excel文件保存回Blob存储(其他容器)。
import logging
from typing import Container
import azure.functions as func
import azure.storage.blob
import openpyxl as xl
import io
### Start Trigger
def main(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {myblob.name}\n"
f"Blob Size: {myblob.length} bytes")
logging.info('Loading Workbook...')
### Load Excel file
wb1 = xl.load_workbook(filename=io.BytesIO(myblob.read()))
logging.info(wb1.sheetnames)
### Create Second Workbook
output = io.BytesIO()
wb2 = xl.Workbook()
wb2.active
wb2.create_sheet('TestSheet')
wb2.save(output)
### Upload to Azure Blob Storage
blob_service_client = azure.storage.blob.BlobServiceClient.from_connection_string(conString)
blob_client = blob_service_client.get_blob_client(container='test2', blob='test2.xlsx')
blob_client.upload_blob(output)
当我现在运行代码时,一切都将正常工作。但blob存储中的Excel文件已损坏,当我尝试打开Excel文件时,我会收到以下错误:
多谢帮忙!
1条答案
按热度按时间jtoj6r0c1#
问题似乎就在这里:
wb2.save(output)
,您可以参考以下代码: