Jelajahi Sumber

报表导出文件过大时网络错误问题解决

zhuth 6 tahun lalu
induk
melakukan
cbd3d08c2c
1 mengubah file dengan 10 tambahan dan 11 penghapusan
  1. 10 11
      src/utils/exportor.js

+ 10 - 11
src/utils/exportor.js

@@ -1,11 +1,9 @@
 /**
  * Created by zhuth on 2019/07/08.
  */
-let Base64 = require('./base64.js');
 ;exports = module.exports = (function () {
     // "use strict";
-    let uri = 'data:application/vnd.ms-excel;base64,',
-    tmplWorkbookXML = '<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?>'
+    let tmplWorkbookXML = '<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?>'
         + '<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">'
             + '<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">'
                 + '<Author>{author}</Author>'
@@ -30,14 +28,14 @@ let Base64 = require('./base64.js');
     },
     _format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) },
     _export = function(workbookXML, wbname) {
-        let link = document.createElement("A");
-        link.href = uri + Base64.encode(workbookXML);
-        link.download = wbname || 'Workbook.xls';
-        link.target = '_blank';
-        document.body.appendChild(link);
-        link.click();
-        document.body.removeChild(link);
- 
+        var eleLink = document.createElement('a');
+        eleLink.download = wbname || 'Workbook.xls';
+        eleLink.style.display = 'none';
+        var blob = new Blob([workbookXML]);
+        eleLink.href = URL.createObjectURL(blob);
+        document.body.appendChild(eleLink);
+        eleLink.click();
+        document.body.removeChild(eleLink);
     };
 
     function Exportor(json, wbname) {
@@ -154,6 +152,7 @@ let Base64 = require('./base64.js');
     };
 
     Exportor.prototype.export = function() {
+        console.log(this.workbookXML);
         _export(this.workbookXML, this.wbname);
     }