在Django中将django表单另存为excel文件并保存到db

时间:2018-12-12 11:45:58

标签: python django excel

我有这样的代码。这是保存在forms.py中指定的数据以及从当前登录用户获取的一些数据的有效示例。

@login_required
def save(request):
        if request.method == 'POST':                
                form = ExcelForm(data=request.POST)
                if form.is_valid():
                        name = request.user.first_name
                        lastname = request.user.last_name
                        date = datetime.datetime.now().date()
                        valid_form = form.save(commit=False) 
                        valid_form.firstName = name 
                        valid_form.lastName = lastname
                        valid_form.date = date                     
                        valid_form.save()                                
                        return redirect('account:panel')         
        else:
                form = ExcelForm(data=request.POST)
        return render(request, 'account/panel.html', {'form': form}) 

此表单已保存到sqllite db。我的主要目标是将此表单另存为excel文件。我该如何解决这个问题?如何将数据传递到工作表并单击html文件中的提交按钮,同时保存到excel文件和数据库中?感谢您将来提供的所有答案。

1 个答案:

答案 0 :(得分:0)

您可以创建一个新视图以将数据导出为ex​​cel格式,而不是将数据存储在excel中。您可以使用django-import-export这样尝试。编写视图的示例:

from django.http import HttpResponse
from .resources import PersonResource

def export(request):
    person_resource = PersonResource()
    dataset = person_resource.export()
    response = HttpResponse(dataset.xls, content_type='application/vnd.ms-excel')
    response['Content-Disposition'] = 'attachment; filename="persons.xls"'
    return response

您也可以选中this medium post以使用视图导出数据。