javascript - 将公式从 JavaScript 添加到 CSV 以导入到 Google 表格会导致多列

标签 javascript excel csv google-sheets google-sheets-formula

我一直在尝试使用 JavaScript 将下面显示的公式添加到 Google 表格中的单个列中,但由于逗号,它会导致不同的列。=IF(A2="VALID", B2, 0)目前,我用来生成 CSV 的代码如下:

var CSVRowDemo = [];
var CSVDemo = 'data:text/csv;charset=utf-8,';
CSVRowDemo.push(['VALID/INVALID', 'Value', 'Check'])
let index = 2;
let check = '"' + '=IF(A'+index+'=\"VALID\"", B'+index+', 0)'.replace(/"/g, '""') + '"';
CSVRowDemo.push(['VALID', '100', check])
CSVRowDemo.forEach(function(rowArray) {
    let row = rowArray.join(',');
    CSVDemo += row + '\r\n';
});

encodedUri = encodeURI(CSVDemo);
link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "Basic.csv");
document.body.appendChild(link);
link.click();
期待看到这样的。 (这就是它在 LibreOffice Calc 中的呈现方式。)
Expected to see it like this.
而是在 Google 表格中看到它。
Rather saw it like this.
最接近的答案来自这个 answer .
我试图只使用 Javascript 而不是 NodeJS 或其他库。
任何帮助表示赞赏。

最佳答案

虽然我不确定将创建的 CSV 数据放入 Google 电子表格的方法,但您可以测试以下修改吗?
从:

let check = '"' + '=IF(A'+index+'=\"VALID\"", B'+index+', 0)'.replace(/"/g, '""') + '"';
至:
let check = `"=IF(A${index}=""VALID"", B${index}, 0)"`;
或者
let check = '"=IF(A'+index+'=""VALID"", B'+index+', 0)"';
  • 在我的环境中,我可以确认经过以下修改的 CSV 数据可以导入到 Google 电子表格中。
  • 关于javascript - 将公式从 JavaScript 添加到 CSV 以导入到 Google 表格会导致多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63876319/

    相关文章:

    Javascript & CSS : Hide scrollbar, 保持滚动事件正常工作

    excel - 如何从 Excel 生成一封电子邮件,其中考虑到选择了多少行

    java - 使用 opencsv - java.lang.OutOfMemoryError : Java heap space

    javascript - 如何获取 Json 数组中的值并单独使用它们

    javascript - 如何覆盖 Firefox 插件中内置的 XPCOM 组件?

    excel - 将函数注入(inject)第一个空白单元格

    python - 如何将 Excel 工作表另存为 CSV

    php - 处理格式错误的 CSV 文件

    javascript - 如何确定 scrollHeight?

    在 R 中读取带有两行标题的 excel