我正在开发一个项目,该项目涉及 Google Drive 中的 csv 文件,该文件每分钟左右更新一次新数据。
我构建了一个电子表格仪表板,以使 csv 中的数据更有意义。
我错误地认为我可以使用 Google 电子表格函数 =importdata(url) 将 Google 云端硬盘中的 CSV 中的数据导入到我的 Google 电子表格中,但是,除非我公开 CSV,否则会产生错误。出于安全和隐私原因可行。即使我确实将 CSV 公开并使用 importdata,传入的数据也完全格式错误并且无法使用 - 它看起来与实际的 CSV 完全不同。
importdats(url) 格式错误的数据 https://i.stack.imgur.com/3M1qC.png
我正在尝试编写一个脚本来自动导入 csv 数据,使用 DriveApp 打开 csv 文件,使用 Utilities.parseCsv 将 csv 转换为数据数组,然后使用 setValues 将数据写入工作表。
function importData() {
var ss = SpreadsheetApp.getActive();
var file = DriveApp.getFilesByName("Agent Performance.csv")
var csv = file.next().getBlob().getDataAsString();
var csvData = Utilities.parseCsv(csv);
var sheet = ss.getSheetByName('CSV Import TEST');
for (var i = 0; i < csvData.length; i++) {
sheet.getRange(i+1, 1, 1, csvData[i].length).setValues(new Array(csvData[i]));
}
}
问题是我得到的替换字符如下: � 写入工作表的所有数据。太奇怪了。该工作表看起来很正常,但如果您单击一个单元格来查看它的值,编辑栏将包含单元格中的任何文本,但每个字符之间有一个 �。这使得 Google Sheets 中的任何计算都变得不可能。
注意公式栏中的替换字符 https://i.stack.imgur.com/OJ164.png
如果我只是使用 Google Sheets“文件”、“导入”和“替换当前工作表”导入相同的 CSV,数据就会很好。这不是一个好的解决方案,因为我真的希望 CSV 更新和 Google 表格中的仪表板更新之间的延迟不超过几分钟。如果我必须手动上传 CSV,那就违背了系统的目的。
任何帮助将不胜感激。谢谢你!