python - 将 .xls 转换为 .xlsx 以便在 openpyxl 问题中处理
问题描述
我试图避免错误
openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format.
pyexcel
根据来自 stackoverflow 的信息,我使用该库添加了文件转换。
def put(self, request, format=None, **kwargs):
if 'file' not in request.data:
raise ParseError("Empty content")
f = request.data['file']
filename = f.name
if filename.endswith('.xlsx') or filename.endswith('.xls'):
try:
file = default_storage.save(filename, f)
# This code added
if filename.endswith('.xls'):
import pyexcel
_f, _ = filename.split('.')
pyexcel.save_book_as(file_name=file,
dest_file_name=f'{_f}.xlsx')
####
r = get_full_excel_file_response(file, context)
except InvalidFormatException as e:
.....
但错误仍然相同。
我正在寻找在 Ubuntu 系统和 Python 3.7 上转换文件格式的最简单方法。对于文件处理,我只使用 openpyxl。所有逻辑都是为 xlsx 编写的。
更新! 看来我找到了原因。文件已转换,但旧文件 (.xml) 继续发送以进行处理。添加了这个字符串
file = default_storage.url(f'{_f}.xlsx')
解决方案
推荐阅读
- javascript - 在不同范围内执行函数:Javascript
- excel - Excel 函数 - 如果在 B 列中找到来自 A 列的字符串,则
- android - Android Kotlin - 用于 RecyclerView 的 setOnTouchListener 和所有项目子视图/里面的所有内容
- java - 如何将 JS 函数中的 HTML 输入 Thymeleaf th:text?
- gitlab-ci - 仅当 GitLab 中手动触发的作业失败时才运行脚本
- wordpress - WP全部导入:导入前如何删除
- php - 如何格式化 var dump (array) 的结果
- amazon-web-services - 从另一个 VPC 访问 VPC 对等连接
- wordpress - Wordpress 网站没有正确显示菜单部门
- javascript - 如何从数组中获取 X 个唯一项