在Django中读取使用html表单上传的Excel文件

Posted

技术标签:

【中文标题】在Django中读取使用html表单上传的Excel文件【英文标题】:Reading Excel File in Django uploaded using html form 【发布时间】:2017-09-06 00:30:27 【问题描述】:

我正在学习 django 框架并尝试读取 excel 文件

我想使用 html 表单(POST 方法)上传文件并想在 python 中读取以进行计算,那么我应该怎么做才真正感到困惑? 代码在这里 form.html

<form method="POST" action="minmax_ans.html">% csrf_tocken %
   form.as_p
   <p><b><h2>Upload File</h2></b><p>
   <input type="file" name="file" value=" source.title ">
   <input type="submit">
</form>

views.py

def upload_file(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
            return HttpResponseRedirect('/success/url/')
    else:
        form = UploadFileForm()
    return render(request, 'upload.html', 'form': form)

如果是excel文件,我想使用通过html表单上传的文件中的数据进行一些计算,并将结果显示在我尚未创建的result.html上,因为我无法读取文件

【问题讨论】:

请展示您尝试过的内容以及不适合您的内容。 ***.com/help/how-to-ask 【参考方案1】:

我可能会先阅读 Django 文档:https://docs.djangoproject.com/en/1.10/topics/http/file-uploads/

要读取 excel 文件,您可以使用 pandas:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html

【讨论】:

【参考方案2】:

你可以这样做

import pandas as pd
def handle_uploaded_file(f):
    pd.read_excel(f, index_col=0)

Pandas read_excel 接受 str、ExcelFile、xlrd.Book、路径对象或类文件对象中的参数 io。

【讨论】:

以上是关于在Django中读取使用html表单上传的Excel文件的主要内容,如果未能解决你的问题,请参考以下文章

通过一个表单字段在 Django 中上传多个文件

使用 Django 模型表单上传图像

C# 中的 Stream Empty 读取和上传 Excel 文件

带有单独提交和上传按钮的 Django 应用程序

python Django之文件上传

如何使用 django-storages 将图像上传到亚马逊 S3?在管理员中上传有效,但在网站表单中无效