亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python各種excel寫入方式的速度對比

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

經過實驗,新建一個excel表格,該表格擁有7個sheet,每個sheet有800條數據,其中最后一個sheet為空。

首先使用openpyxl進行寫入操作,代碼如下:

book = openpyxl.Workbook()auths = Auth.objects.filter(owner_id=1)filename = ’導出數據’for auth in auths: sheet = book.create_sheet(auth.name, index = 0) sheet.append([ _('書名'), _('作者'), _('譯者'), _('出版社'), _('序列號'), _('總頁數'), ]) 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寫入數據:

book = xlwt.Workbook()auths = Auth.objects.filter(owner_id=1)filename = ’導出數據’for auth in auths: sheet = book.add_sheet(sensor.name) sheet.write(0, 0, _('書名')) sheet.write(0, 1, _('作者')) sheet.write(0, 2, _('譯者')) sheet.write(0, 3, _('出版社')) sheet.write(0, 4, _('序列號')) sheet.write(0, 5, _('總頁數')) 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寫入數據:

book = xlsxwriter.Workbook(output)auths = Auth.objects.filter(owner_id=1)for auth in auths: sheet = book.add_worksheet(sensor.name) header = [ _('書名'), _('作者'), _('譯者'), _('出版社'), _('序列號'), _('總頁數'), ] 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)

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

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

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

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

xlwt寫入的行數有限制,因此對于較大的文件來說,XlsxWrite的速度較快一點

補充知識:python寫入excel文件太慢如何解決-python往excel寫入大量數據

目前用的openpyxl,從數據庫獲取8W行的數據通過openpyxl寫入excel,要花費接近8分鐘,這也太慢了,用kettle的插件秒進,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寫入方式的速度對比就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: python
相關文章:
主站蜘蛛池模板: 国内自产拍自a免费毛片 | 九九热中文字幕 | 免费黄色一级大片 | 麻豆视频在线看 | 欧美成人免费全部观看天天性色 | 欧美成人亚洲综合精品欧美激情 | 久久精品亚洲 | 激情五月色综合婷婷大片 | 国产精品一区二区国产 | 婷婷99视频精品全部在线观看 | 亚洲成色999久久网站 | 美国一级黄色片 | 欧美午夜一艳片欧美精品 | 亚洲欧美日韩在线中文一 | 99久久精品无码一区二区毛片 | 国产精品视屏 | 婷婷色影院 | 国产美女色视频 | 18岁免费网站| 免费黄在线| 国产成人久久精品激情 | 美女精品在线 | 国产麻豆精品免费密入口 | 日本在线亚洲 | 妞干网这里只有精品 | 亚洲欧美制服丝袜一区二区三区 | 日韩电影中文字幕在线网站 | 免费麻豆国产一区二区三区四区 | a级国产乱理论片在线观看看 | 欧美特黄三级在线观看 | 日本人妖tubexxxx | 国产精品嫩草影院一二三区 | 欧美在线免费观看视频 | 伊人蕉久中文字幕无码专区 | 中文字幕黄色片 | 96精品视频在线播放免费观看 | 99精品国产成人一区二区在线 | 182tv精品视频在线播放 | 国内真实下药迷j在线观看 国内主播大秀福利视频在线看 | 国产短视频在线观看 | 亚洲精品国产综合99久久一区 |