首页 > 编程 > Python > 正文

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

2019-11-25 11:53:15
字体:
来源:转载
供稿:网友

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

话不多说,看代码:

from xlwt import *import StringIOfrom apps.song.models import Songdef 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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表