officecsv.ftl 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>${file.name}预览</title>
  6. <#include "*/commonHeader.ftl">
  7. <link rel="stylesheet" href="xspreadsheet/xspreadsheet.css"/>
  8. <script src="xspreadsheet/xspreadsheet.js"></script>
  9. <script src="xspreadsheet/is-utf8.js"></script>
  10. <script src="xspreadsheet/xlsx.full.min.js"></script>
  11. <script src="xspreadsheet/xlsxspread.min.js"></script>
  12. <script src="xspreadsheet/cptable.full.js"></script>
  13. <script src="xspreadsheet/zh-cn.js"></script>
  14. <script src="js/base64.min.js" type="text/javascript"></script>
  15. </head>
  16. <#if pdfUrl?contains("http://") || pdfUrl?contains("https://")>
  17. <#assign finalUrl="${pdfUrl}">
  18. <#elseif pdfUrl?contains("ftp://") >
  19. <#assign finalUrl="${pdfUrl}">
  20. <#else>
  21. <#assign finalUrl="${baseUrl}${pdfUrl}">
  22. </#if>
  23. <body>
  24. <div id="htmlout"></div>
  25. <script>
  26. x_spreadsheet.locale('zh-cn');
  27. var HTMLOUT = document.getElementById('htmlout');
  28. var xspr = x_spreadsheet(HTMLOUT);
  29. HTMLOUT.style.height = (window.innerHeight - 400) + "px";
  30. HTMLOUT.style.width = (window.innerWidth - 50) + "px";
  31. var process_wb = (function() {
  32. return function process_wb(wb) {
  33. var data = stox(wb);
  34. xspr.loadData(data);
  35. if(typeof console !== 'undefined') console.log("output", new Date());
  36. };
  37. })();
  38. var url = '${finalUrl}';
  39. var baseUrl = '${baseUrl}'.endsWith('/') ? '${baseUrl}' : '${baseUrl}' + '/';
  40. if (!url.startsWith(baseUrl)) {
  41. url = baseUrl + 'getCorsFile?urlPath=' + encodeURIComponent(Base64.encode(url));
  42. }
  43. let xhr = new XMLHttpRequest();
  44. xhr.open('GET',url); //文件所在地址
  45. xhr.responseType = 'blob';
  46. xhr.onload = () => {
  47. let content = xhr.response;
  48. let blob = new Blob([content]);
  49. let file = new File([blob],'excel.csv',{ type: 'excel/csv' });
  50. var reader = new FileReader();
  51. reader.onload = function(e) {
  52. if(typeof console !== 'undefined') console.log("onload", new Date());
  53. var data = e.target.result;
  54. data = new Uint8Array(data);
  55. let f = isUTF8(data);
  56. if (f) {
  57. var str = cptable.utils.decode(65001, data);
  58. process_wb(XLSX.read(str, { type: "string" }));
  59. } else {
  60. var str = cptable.utils.decode(936, data);
  61. process_wb(XLSX.read(str, { type: "string" }));
  62. }
  63. };
  64. reader.readAsArrayBuffer(file);
  65. }
  66. xhr.send();
  67. /*初始化水印*/
  68. if (!!window.ActiveXObject || "ActiveXObject" in window)
  69. {
  70. }else{
  71. initWaterMark();
  72. }
  73. </script>
  74. </body>
  75. </html>