javascript - 将公式从 JavaScript 添加到 CSV 以导入到 Google 表格会导致多列
问题描述
我一直在尝试使用 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 中的呈现方式。)
最接近的答案来自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 电子表格中。
推荐阅读
- visual-studio - 在 Visual Studio 2019 中组织 C# 使用?
- c# - 如何检测光线投射的相机?
- sql - 如何对文本数据类型进行排序
- c# - 在WPF C#中按下按钮时如何向窗口添加新标签
- maven - Maven jacoco 排除了可能由于 uber jar 而无法工作
- c# - 您可以使用 ML.NET 回归算法和共享单车示例中的部分数据吗?
- android - 全屏模式下的 Android NavigationUI 片段
- java - 无法弄清楚如何在 Windows 上的 Java 中使用 SCIP(使用 eclipse)
- php - Wordpress 迁移和 Polylang 不起作用
- junit - 警告:ID 为“spek2”的 TestEngine 无法使用 Gradle v5.2.1 发现测试