Django package to easily render Excel spreadsheets
A subclass of HttpResponse which will transform a QuerySet, or sequence of sequences, into either an Excel spreadsheet or CSV file formatted for Excel, depending on the amount of data.
pip install django-excel-response
- data - A queryset or list of lists from which to construct the output
- output_filename - The filename which should be suggested in the http response, minus the file extension (default: excel_data)
- worksheet_name - The name of the worksheet inside the spreadsheet into which the data will be inserted (default: None)
- force_csv - A boolean stating whether to force CSV output (default: False)
- header_font - The font to be applied to the header row of the spreadsheet; must be an instance of openpyxl.styles.Font (default: None)
- data_font - The font to be applied to all data cells in the spreadsheet; must be an instance of openpyxl.styles.Font (default: None)
You can construct your data from a queryset.
from excel_response import ExcelResponse def excelview(request): objs = SomeModel.objects.all() return ExcelResponse(objs)
Or you can construct your data manually.
from excel_response import ExcelResponse def excelview(request): data = [ ['Column 1', 'Column 2'], [1,2] [23,67] ] return ExcelResponse(data, 'my_data')
These are as simple as import and go!
from excel_response import ExcelView class ModelExportView(ExcelView): model = SomeModel