跳转到主要内容

扩展Tarken的django-excel-response的功能

项目描述

django-excel-response2

扩展Tarken的django-excel-response的功能

django-excel-response

HttpResponse的子类,它将查询集或序列的序列转换为Excel电子表格或CSV文件,具体取决于数据量。所有这些操作都是在内存中实时进行的,没有磁盘写入,归功于StringIO库。

django-excel-response2

当使用Tarken的django-excel-response时,我们发现当在Mac OS中打开.xls文件时,中文会乱码。如http://segmentfault.com/q/1010000000095546中讨论的那样。我们意识到django-excel-response2基于Tarken的django-excel-response来解决这个问题,通过添加一个名为font的参数来设置字体。

同时

  • 修复错误
    • 无法从偏移量无知的日期和时间减去偏移量有知的日期和时间

继承

# 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__))

安装

pip install django-excel-response2

用法

from django_excel_response import ExcelResponse

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

from django_excel_response import ExcelResponse

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

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')

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', merge_type='row_merge')

参数

  • font='name SimSum'
    • 将字体设置为SimSum(宋体)
  • force_csv=True
    • CSV格式?True表示是,False表示否,默认为False

CSV

datas = [
    [u'中文', ]
]
Win Excel 2013 Mac Excel 2011 Mac Excel 2016 Mac Numbers
UTF8 乱码 乱码 乱码 正常
GB18030 正常 正常 正常 乱码
UTF8 + BOM_UTF8 正常 乱码 正常 正常
UTF16LE + BOM

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

django-excel-response2-3.0.6.tar.gz (5.0 kB 查看哈希值)

上传时间

构建分发

django_excel_response2-3.0.6-py2.py3-none-any.whl (4.9 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者