Export Data from QuerySet as Excel File in Django
Let's say you have this function in your views.py:
In order to get or pass the QuerySet from this function, you need to store it in a session as shown above.
Here's how to create an excel file:
That's it! Just use the session variable from the previous function (funtion_name).
SOURCE 1
SOURCE 2
def funtion_name(request): if request.method == "GET": get_id = request.user.id ... ... ... args = [] kwargs = { 'landproperty__sownerid__id': get_id, 'geom__distance_lte': (pnt, D(km=kmdistance)), 'narea__lte': getarea } mm = YourModelHere.objects.filter(*args, **kwargs).values_list('fielname1', 'fielname2', 'fielname3','fielname4') request.session[0] = mm return HttpResponse(json.dumps(list(m)), content_type='application/json')
In order to get or pass the QuerySet from this function, you need to store it in a session as shown above.
Here's how to create an excel file:
def create_excel(request): book = xlwt.Workbook(encoding='utf8') sheet = book.add_sheet('untitled') default_style = xlwt.Style.default_style datetime_style = xlwt.easyxf(num_format_str='dd/mm/yyyy hh:mm') date_style = xlwt.easyxf(num_format_str='dd/mm/yyyy') headers = ['Table Header 1', 'Table Header 2', 'Table Header 3', 'Table Header 4'] values_list = [headers] + list(request.session[0]) for row, rowdata in enumerate(values_list): for col, val in enumerate(rowdata): if isinstance(val, datetime): style = datetime_style elif isinstance(val, date): style = date_style else: style = default_style sheet.write(row, col, val, style=style) response = HttpResponse(mimetype='application/vnd.ms-excel') response['Content-Disposition'] = 'attachment; filename=example.xls' book.save(response) return response
That's it! Just use the session variable from the previous function (funtion_name).
SOURCE 1
SOURCE 2
Comments
Post a Comment
Feel free to ask, suggest and comment regarding this post/blog. You can also contact me through e-mail, just always use the contact page. Thank you for visiting this blog.