Django 导出数据接口
导出 数据 列表
views
TABLE_COLUMNS : 表头中文
TABLE_COLUMNS_KEY : 表头英文
```python
columns = TABLE_COLUMNS[:]
columns_key = TABLE_COLUMNS_KEY[:]
columns.insert(0, "时间")
columns_key.insert(0, "date_time")
name = "table"
args_all = columns, columns_key, name, export_data_list
response = _export_table_data(*args_all)
return response
export_data_list = [{‘date_time’: ‘2021-06-01’, ‘ip’: ‘172.18.30.104’, ‘table_name’: ‘progressattempt’, ‘database_name’: ‘hio’, ‘table_size’: 0.0009}, {‘date_time’: ‘2021-05-31’, ‘ip’: ‘172.18.30.104’, ‘table_name’: ‘progressattempt’, ‘database_name’: ‘hio’, ‘table_size’: 0.0009}, {‘date_time’: ‘2021-05-28’, ‘ip’: ‘172.18.30.104’, ‘table_name’: ‘progressattempt’, ‘database_name’: ‘hio’, ‘table_size’: 0.0009}, {‘date_time’: ‘2021-05-27’, ‘ip’: ‘172.18.30.104’, ‘table_name’: ‘progressattempt’, ‘database_name’: ‘hio’, ‘table_size’: 0.0009}, {‘date_time’: ‘2021-05-26’, ‘ip’: ‘172.18.30.104’, ‘table_name’: ‘progressattempt’, ‘database_name’: ‘hio’, ‘table_size’: 0.0009}, {‘date_time’: ‘2021-05-21’, ‘ip’: ‘172.18.30.104’, ‘table_name’: ‘progressattempt’, ‘database_name’: ‘hio’, ‘table_size’: 0.0009}, {‘date_time’: ‘2021-05-20’, ‘ip’: ‘172.18.30.104’, ‘table_name’: ‘progressattempt’, ‘database_name’: ‘hio’, ‘table_size’: 0.0}]
###通用导出数据
def _export_table_data(*args):
"""
导出数据
:param args:
:return:
"""
columns, columns_key, name, export_data_list = args
if type(columns) != list or type(columns_key) != list:
return HttpResponse()
wb = xlwt.Workbook(encoding="utf-8")
sheet = wb.add_sheet("data", cell_overwrite_ok=True)
style = xlwt.XFStyle()
font = xlwt.Font()
font.name = "SimSun" # 指定“宋体”
style.font = font
for index, item in enumerate(columns):
sheet.write(0, index, item)
for index, item in enumerate(export_data_list):
for i, v in enumerate(columns_key):
sheet.write(index + 1, i, item.get(v))
output = BytesIO()
wb.save(output)
output.seek(0)
response = HttpResponse(output.getvalue(), content_type="application/vnd.ms-excel")
filename = "{}-{}".format(name, datetime.now().strftime("%Y-%m-%d-%H-%M-%S"))
response["Content-Disposition"] = "attachment; filename="
response["filename"] = quote(filename)
return response