فهرست منبع

HUE-2523 [core] Convert XLS export to pyopenxls

Support writing and reading XLSX instead of just XLS (so support more cols/rows)
Support reading XLSX is for proper testing
Has optimizations for writing files https://openpyxl.readthedocs.org/en/latest/optimized.html#optimized-writer
Support properly unicode so great for ascii or binary downloads
Active, mature project, MIT license
Romain Rigaux 10 سال پیش
والد
کامیت
817f25c
1فایلهای تغییر یافته به همراه6 افزوده شده و 10 حذف شده
  1. 6 10
      desktop/core/src/desktop/lib/export_csvxls.py

+ 6 - 10
desktop/core/src/desktop/lib/export_csvxls.py

@@ -21,7 +21,7 @@ Common library to export either CSV or XLS.
 import gc
 import logging
 import tablib
-import xlsxwriter
+import openpyxl
 
 from django.http import StreamingHttpResponse
 from django.utils.encoding import smart_str
@@ -64,20 +64,16 @@ class XlsWrapper():
 def xls_dataset(headers, data, encoding=None):
   output = StringIO.StringIO()
 
-  workbook = xlsxwriter.Workbook(output)
-  worksheet = workbook.add_worksheet()
-
-  n = 0
+  workbook = openpyxl.Workbook()
+  worksheet = workbook.active
 
   if headers:
-    worksheet.write_row(n, 0, format(headers, encoding))
-    n +=1
+    worksheet.append(format(headers, encoding))
 
   for row in data:
-    worksheet.write_row(n, 0, format(row, encoding))
-    n +=1
+    worksheet.append(format(row, encoding))
 
-  workbook.close()
+  workbook.save(output)
 
   output.seek(0)