python 數(shù)據(jù)生成excel導(dǎo)出(xlwt,wlsxwrite)代碼實(shí)例
這篇文章主要介紹了python 數(shù)據(jù)生成excel導(dǎo)出(xlwt,wlsxwrite)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
話不多說(shuō),看代碼:
from xlwt import *
import StringIO
from apps.song.models import Song
def excel_ktvsong(request):
"""
導(dǎo)出excel表格
"""
_id = request.GET.get('id', 0)
list_obj = Song.objects.filter(is_delete__exact=False)
# django orm
if list_obj:
# 創(chuàng)建工作薄
ws = Workbook(encoding='utf-8')
w = ws.add_sheet(u"歌曲列表")
w.write(0, 0, u"歌曲名稱")
w.write(0, 1, u"歌手")
# 寫入數(shù)據(jù)
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("無(wú)數(shù)據(jù)")
上邊我也是盜的,只不過(guò)當(dāng)時(shí)有需求,數(shù)據(jù)量大只能用xlsxwriter,然后下邊是我用xlsxwriter寫的,邊學(xué)邊寫,還請(qǐng)多多關(guān)照:
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) # 獲取進(jìn)度
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) # 獲取進(jìn)度
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
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何利用Python+OpenCV實(shí)現(xiàn)簡(jiǎn)易圖像邊緣輪廓檢測(cè)(零基礎(chǔ))
輪廓是形狀分析和物體檢測(cè)和識(shí)別的有用工具,下面這篇文章主要給大家介紹了關(guān)于如何利用Python+OpenCV實(shí)現(xiàn)簡(jiǎn)易圖像邊緣輪廓檢測(cè)(零基礎(chǔ))的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
由淺入深學(xué)習(xí)TensorFlow MNIST 數(shù)據(jù)集
這篇文章主要由淺入深學(xué)習(xí)的講解TensorFlow MNIST 數(shù)據(jù)集,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
解決Python內(nèi)層for循環(huán)如何break出外層的循環(huán)的問(wèn)題
今天小編就為大家分享一篇解決Python內(nèi)層for循環(huán)如何break出外層的循環(huán)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Python實(shí)現(xiàn)Tab自動(dòng)補(bǔ)全和歷史命令管理的方法
這篇文章主要介紹了Python實(shí)現(xiàn)Tab自動(dòng)補(bǔ)全和歷史命令管理的方法,實(shí)例分析了tab自動(dòng)補(bǔ)全的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
Python實(shí)現(xiàn)操縱控制windows注冊(cè)表的方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)操縱控制windows注冊(cè)表的方法,結(jié)合實(shí)例形式分析了Python使用_winreg模塊以及win32api模塊針對(duì)Windows注冊(cè)表操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-05-05
pandas DataFrame運(yùn)算的實(shí)現(xiàn)
這篇文章主要介紹了pandas DataFrame運(yùn)算的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
python為什么會(huì)環(huán)境變量設(shè)置不成功
在本篇文章里小編給大家分享的是一篇關(guān)于python環(huán)境變量設(shè)置不成功怎么辦的解決方法內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。2020-06-06

