国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python各種excel寫(xiě)入方式的速度對(duì)比

瀏覽:24日期:2022-07-05 18:35:11

經(jīng)過(guò)實(shí)驗(yàn),新建一個(gè)excel表格,該表格擁有7個(gè)sheet,每個(gè)sheet有800條數(shù)據(jù),其中最后一個(gè)sheet為空。

首先使用openpyxl進(jìn)行寫(xiě)入操作,代碼如下:

book = openpyxl.Workbook()auths = Auth.objects.filter(owner_id=1)filename = ’導(dǎo)出數(shù)據(jù)’for auth in auths: sheet = book.create_sheet(auth.name, index = 0) sheet.append([ _('書(shū)名'), _('作者'), _('譯者'), _('出版社'), _('序列號(hào)'), _('總頁(yè)數(shù)'), ]) objs = None objs = Book.objects.filter(owner_id=auth.id) for u in objs: data = [] data.append(u.name) data.append(auth.name) data.append(u.translator) data.append(u.press) data.append(u.serializer) data.append(u.page) sheet.append(data)return ExcelBookResponse(book, filename)

使用xlwt寫(xiě)入數(shù)據(jù):

book = xlwt.Workbook()auths = Auth.objects.filter(owner_id=1)filename = ’導(dǎo)出數(shù)據(jù)’for auth in auths: sheet = book.add_sheet(sensor.name) sheet.write(0, 0, _('書(shū)名')) sheet.write(0, 1, _('作者')) sheet.write(0, 2, _('譯者')) sheet.write(0, 3, _('出版社')) sheet.write(0, 4, _('序列號(hào)')) sheet.write(0, 5, _('總頁(yè)數(shù)')) i = 1 objs = None objs = Book.objects.filter(owner_id=auth.id) for u in objs: sheet.write(i, 0, u.name) sheet.write(i, 1, auth.name) sheet.write(i ,2,u.translator) sheet.write(i ,3,u.press) sheet.write(i, 4, u.serializer) sheet.write(i, 5, u.page) i += 1return ExcelBookResponse(book, filename)

使用XlsxWriter寫(xiě)入數(shù)據(jù):

book = xlsxwriter.Workbook(output)auths = Auth.objects.filter(owner_id=1)for auth in auths: sheet = book.add_worksheet(sensor.name) header = [ _('書(shū)名'), _('作者'), _('譯者'), _('出版社'), _('序列號(hào)'), _('總頁(yè)數(shù)'), ] sheet.write_row('A1', header) objs = Book.objects.filter(owner_id=auth.id) i = 1 for u in objs: sheet.write(i, 0, u.name) sheet.write(i, 1, auth.name) sheet.write(i ,2,u.translator) sheet.write(i ,3,u.press) sheet.write(i, 4, u.serializer) sheet.write(i, 5, u.page) i += 1book.close()file_ext = ’xlsx’mimetype = ’application/vnd.openxmlformats-officedocument.spreadsheetml.sheet’# self[’Content-Disposition’] = ’attachment; filename*=UTF-8’’'{2}.{1}'; filename='{0}.{1}'’.format(filename.replace(’'’, ’'’), file_ext, urllib.parse.quote(filename.replace(’'’, ’'’))).encode(’utf8’)return HttpResponse(content=output.getvalue(), content_type=mimetype)

三者的時(shí)間比較(兩種方式的文件內(nèi)容是一樣的):

openpyxl: 文件大小為110.75kb, 平均時(shí)間大約為570ms

xlwt: 文件大小為505.91kb,平均時(shí)間大約為440ms

XlsxWrite: 文件大小為109.28kb,平均時(shí)間大約為500ms

xlwt寫(xiě)入的行數(shù)有限制,因此對(duì)于較大的文件來(lái)說(shuō),XlsxWrite的速度較快一點(diǎn)

補(bǔ)充知識(shí):python寫(xiě)入excel文件太慢如何解決-python往excel寫(xiě)入大量數(shù)據(jù)

目前用的openpyxl,從數(shù)據(jù)庫(kù)獲取8W行的數(shù)據(jù)通過(guò)openpyxl寫(xiě)入excel,要花費(fèi)接近8分鐘,這也太慢了,用kettle的插件秒進(jìn),python有什么方法能提升速度么,或者openpyxl能批量插入么,按行效率太低了

#!/usr/bin/python# -*- coding: UTF-8 -*-from openpyxl import Workbook as wbookdef xlsx(filename, rows_info, sheet=’Result’):if filename and sheet:wb = wbook()_sheet = wb.active_sheet.title = sheetrow = _sheet.max_rowfor line in rows_info:if isinstance(line, str):row_list = [line]elif isinstance(line, dict):row_list = list(line.values())else:try:row_list = list(line)except:row_list = []for col in range(0, len(row_list)):col_info = row_list[col]_sheet.cell(row, col + 1, col_info)row += 1wb.save(filename)else:return ’文件和sheet不能為空’

以上這篇python各種excel寫(xiě)入方式的速度對(duì)比就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: python
相關(guān)文章:
主站蜘蛛池模板: 免费看一区二区三区 | 久热久草 | 欧美视频第一页 | 欧美在线视频免费 | 国产精品免费看久久久 | 精品国产三级a在线观看 | 一区二区三区观看 | 精品欧美一区二区在线观看欧美熟 | 在线亚州 | 久草视频中文在线 | 中文精品久久久久国产网址 | 免费一级毛片在线播放欧美 | 美女喷水网站 | 亚洲性在线观看 | 国产成人精品福利站 | 91久久青草精品38国产 | 国产精品久久久久影视不卡 | 亚洲一区二区三区成人 | 日韩日b视频 | 欧美一级专区免费大片野外交 | 99精品欧美一区二区三区 | 美女白浆视频 | 国产97在线视频 | a级毛片免费观看在线播放 a级毛片免费看 | 杨幂精品国产专区91在线 | 国产人做人爱视频精品 | 精品一区二区三区免费爱 | 最新99国产成人精品视频免费 | 久久一区二区精品综合 | 国产在线视频h | 玖玖精品在线 | 在线观看日本免费视频大片一区 | 亚洲欧美在线观看视频 | 手机福利在线 | 亚洲欧美视频在线播放 | 青青热在线精品视频免费 | 中国一级毛片特级毛片 | 97se亚洲综合在线韩国专区福利 | 韩国本免费一级毛片免费 | 精品国产一区二区三区在线观看 | 国产欧美日本在线观看 |