使用JavaScript合并2个数组并将其导出到xls文件
我知道以前可能有人问过这个问题,但我找不到任何能帮助我满足要求的答案 我需要合并这两个数组并将它们导出到Excel文件,我们只需要使用JavaScript/jquery来实现这一点。假设有两个数组,如下所示: 数组1:[“项目1”、“项目2”] 数组2:[“项目3”、“项目4”] 因此,当我合并/合并它们时,最终数组看起来像[“项目1”、“项目2”、“项目3”、“项目4”] 但我希望它在导出的文件中显示如下所示:使用JavaScript合并2个数组并将其导出到xls文件,javascript,jquery,html,arrays,webpage,Javascript,Jquery,Html,Arrays,Webpage,我知道以前可能有人问过这个问题,但我找不到任何能帮助我满足要求的答案 我需要合并这两个数组并将它们导出到Excel文件,我们只需要使用JavaScript/jquery来实现这一点。假设有两个数组,如下所示: 数组1:[“项目1”、“项目2”] 数组2:[“项目3”、“项目4”] 因此,当我合并/合并它们时,最终数组看起来像[“项目1”、“项目2”、“项目3”、“项目4”] 但我希望它在导出的文件中显示如下所示: 你能帮我一下吗?你可以只使用concat合并两个数组: var array1=
你能帮我一下吗?你可以只使用
concat
合并两个数组:
var array1=[“第1项”、“第2项];
var array2=[“第3项”、“第4项”];
合并var=array1.concat(array2);
console.log(合并)代码>如果您的数据格式与此类似,请尝试使用此选项。我认为CSV是最好的,而不是excel。遵循第二种解决方案,不依赖JavaScript库
解决方案1
解决方案2,不带FileSaver.js
您可以在下面的JavaScript文件中找到saveAs方法,将此JavaScript文件添加到您的应用程序中
您可以看看这个Concat,它以我想要的方式显示项目。我想在第一列中显示array1,在第二列中显示array2(水平连接数组)。请重新阅读问题。合并的数组与您想要的合并数组完全相同-您说过,我引用,`最终数组看起来像[“项目1”、“项目2”、“项目3”、“项目4”],
请检查我希望它在导出文件中的样子。使用此方法,它将仅在1列中。获取错误“未定义saveAs”。@Ravi,现在它工作正常。请查看相关图像。导出的数据与此相差甚远。
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();
};