django-excel-storage

Django Excel Storage


Keywords
django-excel-storage
Install
pip install django-excel-storage==2.0.11

Documentation

django-excel-storage

Django Excel Storage

Installation

pip install django-excel-storage

Usage

from django_excel_storage import ExcelStorage

def excelfunc():
    objs = SomeModel.objects.all()
    fpath = ExcelStorage(objs).save()

or

from django_excel_storage import ExcelStorage

def excelfunc():
    data = [
        {
            'Column 1': 1,
            'Column 2': 2,
        },
        {
            'Column 1': 3,
            'Column 2': 4,
        }
    ]
    fpath = ExcelStorage(data, 'my_data', font='name SimSum').save()

or

from django_excel_storage import ExcelStorage

def excelfunc():
    data = [
        ['Column 1', 'Column 2'],
        [1, 2],
        [3, 4]
    ]
    fpath = ExcelStorage(data, 'my_data', font='name SimSum').save()

or

from django_excel_storage import ExcelStorage

def excelfunc():
    data = [
        ['Column 1', 'Column 2'],
        [1, [2, 3]],
        [3, 4]
    ]
    fpath = ExcelStorage(data, 'my_data', font='name SimSum', merge_type='row_merge').save()

or

from django_excel_storage import ExcelStorage

def excelfunc():
    headers = ['Column 1', 'Column 2', 'Column 3', 'Column 4', 'Column 5']
    data = [['Value 1', [['Value 2 Row 1', [['Value 3', 'Value 4', [['Value 5']]]]], ['Value 2 Row 2', [['Value 3 Row 1', 'Value 4 Row 1', [['Value 5 Row 1']]], ['Value 3 Row 2', 'Value 4 Row 2', [['Value 5 Row 2']]]]]]]]
    fpath = ExcelStorage(data, 'my_data', font='name SimSum', merge_type='list_row_merge', headers=headers)

or

from django_excel_storage import ExcelStorage

def excelfunc():
    headers = ['Column 1', 'Column 2', 'Column 3', 'Column 4', 'Column 5']
    mapping = {
        'field_key': 'Column 1',
        'data_key': 'Children 1',
        'next': {
            'field_key': 'Column 2',
            'data_key': 'Children 2',
            'next': {
                'field_key': ['Column 3', 'Column 4'],
                'data_key': 'Children 3',
                'next': {
                    'field_key': 'Column 5',
                }
            }
        }
    }
    data = [{
        'Column 1': 'Value 1',
        'Column 11': 'Value 11',
        'Children 1': [{
            'Column 2': 'Value 2 Row 1',
            'Column 22': 'Value 22 Row 1',
            'Children 2': [{
                'Column 3': 'Value 3',
                'Column 4': 'Value 4',
                'Children 3': {
                    'Column 5': 'Value 5',
                }
            }]
        }, {
            'Column 2': 'Value 2 Row 2',
            'Column 22': 'Value 22 Row 2',
            'Children 2': [{
                'Column 3': 'Value 3 Row 1',
                'Column 4': 'Value 4 Row 1',
                'Children 3': {
                    'Column 5': 'Value 5 Row 1',
                }
            }, {
                'Column 3': 'Value 3 Row 2',
                'Column 4': 'Value 4 Row 2',
                'Children 3': {
                    'Column 5': 'Value 5 Row 2',
                }
            }]
        }]
    }]
    fpath = ExcelStorage(data, 'my_data', font='name SimSum', merge_type='dict_row_merge', mapping=mapping, headers=headers)

Params

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

CSV

datas = [
    [u'中文', ]
]
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