python数据导出excel_python 数据生成excel导出(xlwt,wlsxwrite)代码实例

这篇博客介绍了如何使用Python的xlwt和xlsxwriter库来生成Excel文件。首先展示了使用xlwt创建工作簿,写入数据并保存到内存流中,然后以HTTP响应的方式提供下载。接着,文章转向xlsxwriter,详细说明了如何设置单元格样式,写入数据,并同样以HTTP响应返回生成的Excel文件。此外,还提到了根据数据量选择合适的库的重要性。
摘要由CSDN通过智能技术生成

这篇文章主要介绍了python 数据生成excel导出(xlwt,wlsxwrite)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

话不多说,看代码:

from xlwt import *

import StringIO

from apps.song.models import Song

def excel_ktvsong(request):

"""
导出excel表格
"""

_id = request.GET.get('id', 0)

list_obj = Song.objects.filter(is_delete__exact=False)
 # django orm

if list_obj:
 # 创建工作薄

ws = Workbook(encoding='utf-8')

w = ws.add_sheet(u"歌曲列表")

w.write(0, 0, u"歌曲名称")

w.write(0, 1, u"歌手")

# 写入数据

excel_row = 1

for obj in list_obj:

data_song = obj.song

data_singer_name = obj.singer_name

w.write(excel_row, 0, data_song)

w.write(excel_row, 1, data_singer_name)

excel_row += 1

sio = StringIO.StringIO()

ws.save(sio)

sio.seek(0)

response = HttpResponse(sio.getvalue(),

content_type='application/vnd.ms-excel')

response['Content-Disposition'] = 'attachment;filename=%s.xls' % time.strftime('%Y%m%d%H%M%S')

response.write(sio.getvalue())

return response

else:

return HttpResponse("无数据")

上边我也是盗的,只不过当时有需求,数据量大只能用xlsxwriter,然后下边是我用xlsxwriter写的,边学边写,还请多多关照:

import xlsxwriter,StringIO

output = StringIO.StringIO()

workbook = Workbook(output)

if id:

sheet_name = _(u"vvv")

w = workbook.add_worksheet(sheet_name)

else:

sheet_name = _(u"vvvvvvv")

w = workbook.add_worksheet(sheet_name)

""" 表格单元格样式"""

head_cell_xf = workbook.add_format({

'font_name': 'SimSun',

'bold': True,

'text_wrap': True,

'valign': 'vcenter',

'align': 'left',

'bg_color': 'gray',

'pattern': 1,

'bottom': 1,

'left': 1,

'right': 1,

'top': 1,

})

body_cell_xf = workbook.add_format({

'font_name': 'SimSun',

'text_wrap': True,

'valign': 'vcenter',

'align': 'left',

'bg_color': 'gray',

'pattern': 1,

'bottom': 1,

'left': 1,

'right': 1,

'top': 1,

})

w.write(0, 0, 'xxxx', head_cell_xf)

w.write(0, 1, u'xxxx', head_cell_xf)

w.set_column(1, 0, 18)

w.set_column(1, 1, 100)

excel_row = 1

# cve_id = set()

# i18n_name = set()

data={}

if id:

res = xx.objects.get(id=id)

res = res.vuls.split(';')

for re in res:

re = xx.objects.get(pk=xx)

data[re.cve_id]=re.i18n_name[1]

# w.write(excel_row, 0, re.cve_id,body_cell_xf)

# w.write(excel_row, 1, re.i18n_name[1], body_cell_xf)

# cve_id.add(re.cve_id)

# cve_id.add(re.i18n_name[1])

excel_row += 1

progress_status = excel_row*100/len(res) # 获取进度

else:

res = xx.objects.get(pk=xx)

res = res.white_list.split(',')

for re in res:

re = Vuln.objects.get(vul_id=re)

data[re.cve_id] = re.i18n_name[1]

excel_row += 1

progress_status = excel_row * 100 / len(res) # 获取进度

w.write_column('A2', data.keys(), body_cell_xf)

w.write_column('B2', data.values(), body_cell_xf)

workbook.close()

response = HttpResponse(output.getvalue(),

content_type='application/octet-stream')

response['Content-Disposition'] = 'attachment;filename=%s.xlsx' % xxx

response.write(output.getvalue())

progress_status = 0

return response

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持谷谷点程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值