ExtJs表格导出Excl,采用data:application/vnd.ms-excel;base64,方式导出数据量大时导出时网络错误。导出失败!

weixin_38066491 2016-10-13 10:36:58
function getMultiGrid2Excel(xml,title,worksheet){ return '<xml version="1.0" encoding="utf-8">' +      '<ss:Workbook xmlns:ss="urn:schemas-microsoft-com🏢spreadsheet" xmlns:x="urn:schemas-microsoft-com🏢excel" xmlns:o="urn:schemas-microsoft-com🏢office">' +      '<o:DocumentProperties><o:Title>' + title + '</o:Title></o:DocumentProperties>' +      '<ss:ExcelWorkbook>' + //     '<ss:WindowHeight>' + worksheet.height + '</ss:WindowHeight>' + //     '<ss:WindowWidth>' + worksheet.width + '</ss:WindowWidth>' +      '<ss:ProtectStructure>False</ss:ProtectStructure>' +      '<ss:ProtectWindows>False</ss:ProtectWindows>' +      '</ss:ExcelWorkbook>' +      '<ss:Styles>' +      '<ss:Style ss:ID="Default">' +      '<ss:Alignment ss:Vertical="Top" ss:WrapText="1" />' +      '<ss:Font ss:FontName="arial" ss:Size="10" />' +      '<ss:Borders>' +      '<ss:Border ss:Color="#e4e4e4" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Top" />' +      '<ss:Border ss:Color="#e4e4e4" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Bottom" />' +      '<ss:Border ss:Color="#e4e4e4" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Left" />' +      '<ss:Border ss:Color="#e4e4e4" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Right" />' +      '</ss:Borders>' +      '<ss:Interior />' +      '<ss:NumberFormat />' +      '<ss:Protection />' +      '</ss:Style>' +      '<ss:Style ss:ID="title">' +      '<ss:Borders />' +      '<ss:Font ss:Size="16" />' +      '<ss:Interior ss:Pattern="Solid" ss:Color="#CCCCFF" />' +      '<ss:Alignment ss:WrapText="1" ss:Vertical="Center" ss:Horizontal="Center" />' +      '<ss:NumberFormat ss:Format="@" />' +      '</ss:Style>' +      '<ss:Style ss:ID="headercell">' +      '<ss:Font ss:Bold="1" ss:Size="10" />' +      '<ss:Alignment ss:WrapText="1" ss:Horizontal="Center" />' +      '<ss:Interior ss:Pattern="Solid" ss:Color="#A3C9F1" />' +      '</ss:Style>' +      '<ss:Style ss:ID="even">' +      '<ss:Interior ss:Pattern="Solid" ss:Color="#CCFFFF" />' +      '</ss:Style>' +      '<ss:Style ss:Parent="even" ss:ID="evendate">' +      '<ss:NumberFormat ss:Format="yyyy-mm-dd" />' +      '</ss:Style>' +      '<ss:Style ss:Parent="even" ss:ID="evenint">' +      '<ss:NumberFormat ss:Format="0" />' +      '</ss:Style>' +      '<ss:Style ss:Parent="even" ss:ID="evenfloat">' +      '<ss:NumberFormat ss:Format="0.00" />' +      '</ss:Style>' +      '<ss:Style ss:Parent="even" ss:ID="evenNumber">' +      '<ss:NumberFormat ss:Format="#,##0.00_ " />' +      '</ss:Style>' +      '<ss:Style ss:ID="odd">' +      '<ss:Interior ss:Pattern="Solid" ss:Color="#CCCCFF" />' +      '</ss:Style>' +      '<ss:Style ss:Parent="odd" ss:ID="odddate">' +      '<ss:NumberFormat ss:Format="yyyy-mm-dd" />' +      '</ss:Style>' +      '<ss:Style ss:Parent="odd" ss:ID="oddint">' +      '<ss:NumberFormat ss:Format="0" />' +      '</ss:Style>' +      '<ss:Style ss:Parent="odd" ss:ID="oddfloat">' +      '<ss:NumberFormat ss:Format="0.00" />' +      '</ss:Style>' +      '<ss:Style ss:Parent="odd" ss:ID="oddNumber">' +      '<ss:NumberFormat ss:Format="#,##0.00_ " />' +      '</ss:Style>' +      '</ss:Styles>' +       xml +      '</ss:Workbook>'; } 导出的主要方法如下: var exportA = document.createElement('a'); exportA.setAttribute('download',title+'.xls'); exportA.setAttribute('href','data:application/vnd.ms-excel;base64,'+Base64.encode(getMultiGrid2Excel(xml,title,worksheet))); exportA.click(); 我发现超过了800行就导出失败了。 我用的是谷歌浏览器,IE 浏览器不支持这种方式导出。 而我们项目规定用谷歌浏览器,发现数据量太大导不出是因为 setAttribute value值太长。求大神指教
...全文
730 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧