Skip to main content
2025 Python Packaging Survey is now live!  Take the survey now

A mixin for views with a queryset that provides a CSV/Excel export.

Project description

django-spreadsheetresponsemixin

View mixin for django, that generates a csv or excel sheet.

[![Build Status on Travis](https://travis-ci.org/aptivate/django-spreadsheetresponsemixin.svg?branch=master)](https://travis-ci.org/aptivate/django-spreadsheetresponsemixin)

Installation

pip install django-spreadsheetresponsemixin

Usage

Add to your django view as a mixin:

class ExcelExportView(SpreadsheetResponseMixin, ListView):
    def get(self, request):
        self.queryset = self.get_queryset()
        return self.render_excel_response()


class CsvExportView(SpreadsheetResponseMixin, ListView):
    def get(self, request):
        self.queryset = self.get_queryset()
        return self.render_csv_response()

Note you must specify a Queryset, ValuesQueryset or ValuesListQueryset on the class or pass it in when you call the render method.

You can also specify the fields and the headers as tuples if you want to refine the results and / or provide custom headers for your columns.

Exported file will be named export.csv or export.xlsx by default, but you can change this by either specifying export_filename attribute to name exported file or export_filename_root to specify only the root part of it (and let app take care of the appropriate extension).

Changelog

Not available for 0.1.10 and earlier - sorry :s

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page