我有一个django服务器,允许用户上传xlsx文件,我想访问其中的数据。
我知道openpyxl,但是,看起来它没有办法解析打开的文件,我不想将文件保存在磁盘上并再次阅读。
我该怎么做?
答案 0 :(得分:3)
将其作为字节流读取。 This explanation帮助我完成了同样的任务 我的解决方案:
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))
答案 1 :(得分:2)
实际上,它比上面更简单:
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)
file
的{{1}}属性已经返回BytesIO实例;)