Metadata-Version: 2.1
Name: django-excel-response2
Version: 3.0.1
Summary: A function extends of Tarken's django-excel-response
Home-page: https://github.com/django-xxx/django-excel-response2
Author: Hackathon
Author-email: kimi.huang@brightcells.com
License: UNKNOWN
Keywords: django-excel-response django-excel-response2
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
Requires-Dist: django-excel-base (>=1.0.3)
Requires-Dist: django-six (>=1.0.4)

======================
django-excel-response2
======================

django-excel-response
=====================

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.
All of this is done in-memory and on-the-fly, with no disk writes,
thanks to the StringIO library.

* DjangoSnippets - http://djangosnippets.org/snippets/1151/
* PyPI - https://pypi.python.org/pypi/django-excel-response/1.0

django-excel-response2
======================

When using Tarken’s django-excel-response.
We find that Chinese is messed code when we open .xls in Mac OS.
As discussed in http://segmentfault.com/q/1010000000095546.
We realize django-excel-response2 Based on Tarken’s django-excel-response
to solve this problem By adding a Param named font to set font.

At The Same Time:

* Fix Bug
    * can't subtract offset-naive and offset-aware datetimes

Inherit
=======

::

    # Since Version 2.0.2
    if 'FileResponse' in names:
        ExcelResponse = type('ExcelResponse', (http.FileResponse, ), dict(__init__=__init__))
    elif 'StreamingHttpResponse' in names:
        ExcelResponse = type('StreamingHttpResponse', (http.StreamingHttpResponse, ), dict(__init__=__init__))
    else:
        ExcelResponse = type('HttpResponse', (http.HttpResponse, ), dict(__init__=__init__))


Installation
============

::

    pip install django-excel-response2


Usage
=====

::

    from django_excel_response import ExcelResponse

    def excelview(request):
        objs = SomeModel.objects.all()
        return ExcelResponse(objs)


or::

    from django_excel_response import ExcelResponse

    def excelview(request):
        data = [
            ['Column 1', 'Column 2'],
            [1, 2],
            [3, 4]
        ]
        return ExcelResponse(data, 'my_data', font='name SimSum')


or::

    from django_excel_response import ExcelResponse

    def excelview(request):
        data = [
            ['Column 1', 'Column 2'],
            [1, [2, 3]],
            [3, 4]
        ]
        return ExcelResponse(data, 'my_data', font='name SimSum', row_merge=True)


Params
======

* font='name SimSum'
    * Set Font as SimSum(宋体)
* force_csv=True
    * CSV Format? True for Yes, False for No, Default is False


CSV
===

+-----------------+----------------+----------------+----------------+-------------+
|                 | Win Excel 2013 | Mac Excel 2011 | Mac Excel 2016 | Mac Numbers |
+=================+================+================+================+=============+
| UTF8            | Messy          | Messy          | Messy          | Normal      |
+-----------------+----------------+----------------+----------------+-------------+
| GB18030         | Normal         | Normal         | Normal         | Messy       |
+-----------------+----------------+----------------+----------------+-------------+
| UTF8 + BOM_UTF8 | Normal         | Messy          | Normal         | Normal      |
+-----------------+----------------+----------------+----------------+-------------+
| UTF16LE + BOM   |                |                |                |             |
+-----------------+----------------+----------------+----------------+-------------+


