【发布时间】:2018-07-20 15:45:13
【问题描述】:
我在本地主机上运行 Django(稍后在 LAN 上运行),我的想法是我可以进入网页,单击一个按钮,提示您从计算机中选择一个 excel 文件。 Pandas 将对上述 excel 文件进行处理,Django/Pandas 将制作此 Pandas 数据框的 excel 文件作为下载提示。
我已经运行了 Django,并使用模块“Django-Excel”中的以下代码完成了我想要的基本操作。 Excel 文件输入---> excel 文件输出,不将文件保存到数据库或仅将其保存在内存中的任何内容。但是,我找不到将熊猫硬塞进去的方法。我遇到的主要问题是我不确定如何使用 Pandas 返回一个 excel 文件。我一直在我的离线 python 代码中使用'.to_excel()',但是,还没有找到在运行 Django 的本地主机中使用它的方法。我确定我错过了一些非常简单的东西,但我就是无法得到它。
也许如果有人可以举一个简单的例子,比如上传一个 excel,pandas 会将 excel 中的一列数字乘以 2,输出新的 excel 以读取/保存。
from django.shortcuts import render, redirect
from django.http import HttpResponseBadRequest, HttpResponse
from _compact import JsonResponse
from django import forms
import django_excel as excel
from polls.models import Question, Choice
class UploadFileForm(forms.Form):
file = forms.FileField()
# Create your views here.
def upload(request):
if request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
filehandle = request.FILES['file']
# do pandas here to filehandle/ put filehandle into a function
return excel.make_response(filehandle.get_sheet(), "csv",
file_name="download")
else:
form = UploadFileForm()
return render(
request,
'upload_form.html',
{
'form': form,
'title': 'Excel file upload and download example',
'header': ('Please choose any excel file ' +
'from your cloned repository:')
})
非常感谢,如果不清楚,抱歉这是我第一次在这个网站上发帖,如果你不明白我的要求,我会详细说明。
【问题讨论】:
-
返回
FileResponse。这可能就是 django_excelmake_response()返回的内容。 docs.djangoproject.com/en/2.0/ref/request-response/…
标签: python django excel python-3.x pandas