【发布时间】:2021-10-26 21:02:24
【问题描述】:
我有一张我在内存上写的 Excel 表,我想使用 openpyxl 进行修改。由于多种情况,我不能使用临时文件或任何类似的东西。我也在编写原始表格,而不是使用 openpyxl,而是 xlsxwriter,原因我不想详细说明。但是,原始表格以类似字节的格式保存,所以我想知道是否可以对修改后的 Excel 表格执行相同操作,然后使用请求上传。
这是我正在使用的代码:
def UploadXLS(name, xlsx):
wb = opx.load_workbook(io.BytesIO(xlsx))
wb.security = WorkbookProtection(workbookPassword = 'super-secret-password', lockStructure = True)
wb.save(name)
r = requests.post('my-url-here',
files = wb)
return r.url
这是我收到的(可预测的)错误消息:
a bytes-like object is required, not 'Workbook'
任何有关该主题的帮助或建议将不胜感激。
【问题讨论】:
-
您需要打开文件并将文件流添加到请求中,而不是工作簿对象。
-
没有理由不使用临时文件,因为 openpyxl 无论如何都会使用它们。
标签: python python-3.x python-requests openpyxl xlsxwriter