正如标题所说,我目前有一个从 SharePoint 列表数据创建的 CSV 文件,为了将此信息显示为电子表格,我想将其转换为 Excel XLSX 文件。我更喜欢在不依赖第三方库的情况下执行此操作。起初,我开始使用 ActiveX 对象来尝试重新创建和/或将 CSV 保存为 XLSX,但是有一个限制,因为我无法在 IE 之外的其他浏览器中真正使用它。我在想使用 Blob 以某种方式转换它?这就是我被困的地方。
function createCsv(data) {
var result = "";
if (data == null || data.length == 0) {
return;
}
var columnDelimiter = ',';
var lineDelimiter = '\n';
var keys = Object.keys(data[0]);
// spreadsheet header
result += keys.join(columnDelimiter);
result += lineDelimiter;
// spreadsheet data
data.forEach(function (obj) {
var count = 0;
keys.forEach(function (key) {
if (count > 0) {
result += columnDelimiter;
}
result += …Run Code Online (Sandbox Code Playgroud) 所以我需要传递一个对象,其中每个属性都是数组。该函数将使用保存在每个数组中的信息,但是我想通过检查每个数组的每个数组是否为空/空来检查整个对象是否为空(不只是没有属性)。到目前为止,我有:
function isUnPopulatedObject(obj) { // checks if any of the object's values are falsy
if (!obj) {
return true;
}
for (var i = 0; i < obj.length; i++) {
console.log(obj[i]);
if (obj[i].length != 0) {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
因此,例如,这将导致以上结果false:
obj {
0: Array[0]
1: Array[1]
2: Array[0]
}
Run Code Online (Sandbox Code Playgroud)
虽然这是我要检查的空白(确实如此):
obj {
0: Array[0]
1: Array[0]
2: Array[0]
}
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用。提前致谢。