我知道之前可能已经问过这个问题,但我找不到任何可以帮助我满足要求的答案。
我需要合并2个数组并将它们导出到Excel文件,我们只需要使用JavaScript / jquery来实现这一点。我们假设有2个数组如下:
数组1:[“第1项”,“第2项”]
数组2:[“第3项”,“第4项”]
所以当我合并/连接它们时,Final数组看起来像[“Item 1”,“Item 2”,“Item 3”,“Item 4”]
但我希望它在导出的文件中显示如下:
你能帮我解决这个问题吗?
您可以仅使用concat
合并两个数组:
var array1 = ["Item 1", "Item 2"];
var array2 = ["Item 3", "Item 4"];
var merged = array1.concat(array2);
console.log(merged);
导出到XLS有点困难,但幸运的是,它有一个维护良好的库:Excellent Export。
尝试使用此,如果您的数据格式如此。我认为CSV是最好的而不是优秀。遵循第二个解决方案,不依赖JavaScript库。
var array1 = ["Item 1", "Item 3"];
var array2 = ["Item 2", "Item 4"];
let noDuplicate = array1.filter(i => array2.findIndex(a => i == a) == -1);
let result = [...noDuplicate, ...array2];
console.log(result);
exportToExcel = function() {
var myJsonString = JSON.stringify(result);
var blob = new Blob([myJsonString], {
type: "application/vnd.ms-excel;charset=utf-8"
});
saveAs(blob, "Report.xls");
};
var Results = [array1, array2];
exportToCsv = function() {
var CsvString = "";
Results.forEach(function(RowItem, RowIndex) {
RowItem.forEach(function(ColItem, ColIndex) {
CsvString += ColItem + ",";
});
CsvString += "\r\n";
});
CsvString = "data:application/csv," + encodeURIComponent(CsvString);
var x = document.createElement("A");
x.setAttribute("href", CsvString);
x.setAttribute("download", "somedata.csv");
document.body.appendChild(x);
x.click();
};
您可以在以下JavaScript文件中找到saveAs方法,将此JavaScript文件添加到您的应用程序中。 https://github.com/eligrey/FileSaver.js/blob/master/src/FileSaver.js