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

作者:南鱼羁荒渡 时间:2022-09-17 23:37:31 

这篇文章主要介绍了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

来源:https://www.cnblogs.com/nanyu/p/9984800.html

标签:python,数据,生成,excel,导出,xlwt,wlsxwrite
0
投稿

猜你喜欢

  • 详细解读MySQL的触发器trigger

    2024-01-24 18:24:24
  • redis之django-redis的简单缓存使用

    2023-11-20 10:30:15
  • 为什么mysql自增主键不是连续的

    2024-01-19 06:59:53
  • python中sqllite插入numpy数组到数据库的实现方法

    2024-01-16 20:31:29
  • 详细介绍ASP内置对象Response

    2008-06-23 12:42:00
  • python基础教程之自定义函数介绍

    2021-09-12 13:10:24
  • python迭代器实例简析

    2023-07-26 07:40:29
  • 使用PHP获取网络文件的实现代码

    2023-09-09 08:41:53
  • 关于Vue3中的响应式原理

    2024-04-30 10:29:23
  • 一个简单的SQL 行列转换语句

    2024-01-24 01:57:08
  • Python json模块与jsonpath模块区别详解

    2023-09-17 18:07:26
  • js定时器怎么写?就是在特定时间执行某段程序

    2024-04-22 12:54:00
  • 再谈Python中的字符串与字符编码(推荐)

    2023-06-15 23:25:08
  • php导出excel格式数据问题

    2023-07-13 22:46:06
  • Python 数据可视化之Matplotlib详解

    2022-12-30 05:33:21
  • dl+ol应用

    2008-06-21 17:04:00
  • vue权限路由实现的方法示例总结

    2024-06-05 15:29:41
  • MySQL学习笔记之创建、删除、修改表的方法

    2024-01-16 15:14:52
  • Python Log文件大小设置及备份的方法

    2022-08-02 13:46:14
  • Python详细讲解图像处理的而两种库OpenCV和Pillow

    2022-08-14 05:23:19
  • asp之家 网络编程 m.aspxhome.com