Python 如何读取django中上传的xlsx文件?
我有一个django服务器,允许用户上传xlsx文件,我想访问其中的数据 我知道openpyxl,但是,它似乎没有办法解析打开的文件,我不想将文件保存在磁盘上,然后再次读取 我该怎么做呢?把它读成ByTestStream。 帮我完成同样的任务 我的解决方案:Python 如何读取django中上传的xlsx文件?,python,django,openpyxl,Python,Django,Openpyxl,我有一个django服务器,允许用户上传xlsx文件,我想访问其中的数据 我知道openpyxl,但是,它似乎没有办法解析打开的文件,我不想将文件保存在磁盘上,然后再次读取 我该怎么做呢?把它读成ByTestStream。 帮我完成同样的任务 我的解决方案: from openpyxl import load_workbook from io import BytesIO ... if request.method == 'POST': form
from openpyxl import load_workbook
from io import BytesIO
...
if request.method == 'POST':
form = UploadForm(request.POST, request.FILES)
if form.is_valid():
file_in_memory = request.FILES['file'].read()
wb = load_workbook(filename=BytesIO(file_in_memory))
实际上,它比上面简单:
from openpyxl import load_workbook
...
if request.method == 'POST':
form = UploadForm(request.POST, request.FILES)
if form.is_valid():
wb = load_workbook(filename=request.FILES['file'].file)
FILES['file']
的file
属性已经返回一个BytesIO实例;) 您必须编写自己的代码才能将zip存档传递到openpyxl。最好把它保存在某个地方。