导入和导出excel文件到JavaScript数组

我目前正在寻找一种快速和有效的方式来导入一个JavaScript数组的一个Excel文件,并导出它也。 我在这里试过这个build议:

https://stackoverflow.com/a/27474951/4346569

但问题是检查控制台,它显示输出是对象,所以他们是JSON对象? 是因为我的excel文件有多个列? 在这种情况下,我将如何能够做到这一点:(?

我也需要一种方法来做同样的事情,但方法相反。 有人可以告诉我吗?

谢谢!

编辑:我想input,但现在我卡在如何能够输出到Excel。 我将需要有一些细胞按规定的颜色。 任何人都可以给我一些指导呢?

这是一个更灵活的gridExportToExcel()函数的例子,您可以在其中对单元格进行着色和格式化。 也许,你需要改变它,然后才能直接运行它。

存储在网格variables中的所有数据都具有以下列:

  • grid.data – 对象数组
  • grid.columns – 列对象的数组
    • 键入 – “数字” – 用于数字数据types
    • kindid – 子types,如“钱”或date

这段代码使用了Lodash库的一些function。

 $(function() { window.gridExportToExcel = (function () { var a = document.createElement("a"); document.body.appendChild(a); a.style = "display: none"; return function () { var s = gridGenerateExcel(); var blob = new Blob([s], { type: 'application/vnd.ms-excel' }); url = window.URL.createObjectURL(blob); a.href = url; a.download = page.pagename+".xls"; a.click(); window.URL.revokeObjectURL(url); }; }()); }); function gridGenerateExcel(title) { if (_.isUndefined(title)) title = "Sheet1"; var s = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" \ xmlns="http://www.w3.org/TR/REC-html40"><head> \ <meta charset="utf-8" /> \ <!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets> \ <x:ExcelWorksheet><x:Name>' + title + '</x:Name><x:WorksheetOptions><x:DisplayGridlines/> </x:WorksheetOptions> \ </x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>'; s += '<colgroups>'; grid.columns.forEach(function (col) { s += '<col style="width: '+col.width+'px"></col>'; }); s += '<thead><tr>'; grid.columns.forEach(function (col) { s += '<th style="background-color: #E5E5E5; border: 1px solid black;">' + col.name + '</th>'; }); s += '<tbody>'; _.forEach(grid.data,function(d){ s += '<tr>'; grid.columns.forEach(function (col) { var value = d[col.id]; s += '<td '; if (col.kindid == "money") { s += "style = 'mso-number-format:\"\\#\\,\\#\\#0\\\\ _р_\\.\";white-space:normal;'"; } else if (col.type == "numeric") s += "";//" style = 'mso-number-format:\"\\@\";'"; else if (col.kindid == "date") s += " style='mso-number-format:\"Short Date\";'"; else s += " style='mso-number-format:\"\\@\";'"; s += '>'; if(_.isUndefined(value) || _.isNull(value)) { s += ''; } else if (col.kindid == "date") { s += moment(value).format('DD.MM.YY'); } else if (col.kindid == "money") { s += formatMoney(value.toFixed(2)); } else if (col.type == "numeric") { s += value.toString(); } else s += d[col.id]; }); }); s += '</table></body></html>'; return s; }