【问题标题】:Adding Formula from JavaScript to CSV to be imported to Google Sheet results in multiple columns将公式从 JavaScript 添加到 CSV 以导入到 Google 表格会导致多列
【发布时间】:2020-09-13 22:55:37
【问题描述】:

我一直在尝试使用 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 中的呈现方式。)

宁愿在 Google 表格中看到它。

最接近的答案来自这个answer

我正在尝试仅使用 Javascript 而不是 NodeJS 或其他库。

感谢任何帮助。

【问题讨论】:

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


    【解决方案1】:

    虽然我不确定将创建的 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 电子表格中。

    【讨论】:

    • 第一个对我有用。感谢您的帮助!
    • @remedcu 感谢您的回复。很高兴您的问题得到解决。
    猜你喜欢
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 2021-12-24
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多