Google Apps Script Utilities.parseCsv() 和替换字符 - �

2024-02-03

我正在开发一个项目,该项目涉及 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,那就违背了系统的目的。

任何帮助将不胜感激。谢谢你!


你检查过文件字符集吗?调用时指定即可getDataAsString(charset) https://developers.google.com/apps-script/reference/base/blob#getDataAsString(String)。尝试这个:

function importData() {
  var ss = SpreadsheetApp.getActive();
  var file = DriveApp.getFilesByName("Agent Performance.csv")
  var csv = file.next().getBlob().getDataAsString('ISO-8859-1'); //note the charset
  var csvData = Utilities.parseCsv(csv);
  //unless you csv has variable amount of columns per line, you should do this
  if(csvData.length > 0) {
    ss.getSheetByName('CSV Import TEST')
      .getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
  } else
    throw 'Blank file';
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Apps Script Utilities.parseCsv() 和替换字符 - � 的相关文章

  • 使用 Ruby CSV 在第 1 行中进行非法引用

    我收到此错误 Illegal quoting in line 1 CSV MalformedCSVError 我的文件中的第 1 行如下 Status Internal ID Language Created At Updated At I
  • 删除或删除云端硬盘中的特定文件

    我有一个每天早上 5 点运行的脚本 它将特定文件 data xls 移至垃圾箱 但是 由于 DocsList 已停用 该脚本不再起作用 并且我在更新它时遇到了问题 我在这里看到了几个删除 setTrashed 脚本 但它们似乎都适用于一组文
  • 清除内容并从另一张纸复制

    我编写了一个脚本 旨在清除 Google Sheets 电子表格的内容并复制并粘贴另一个工作表的内容 需要清除的工作表称为 NEW SHEET 要复制的工作表称为 Database 由于某种原因 该脚本目前无法运行 当我运行它时什么也没有发
  • CSV.foreach 未读取 CSV 文件中的第一列

    第一次学习Ruby来自动清理一些CSV文件 我已经设法从其他 SO 问题中拼凑出下面的脚本 但由于某种原因 该脚本没有读取原始 CSV 文件的第一列 如果我添加一个虚拟的第一列 一切都会完美运行 我缺少什么 require csv COLU
  • 在应用程序脚本中将 .XLS 转换为 Google 表格的最有效方法是什么?

    我每周都会自动将 XLS 文件下载到 Google 云端硬盘 我想每周自动将最新下载的 XLS 文件转换为 Google 表格格式 因此转到特定的 Google 驱动器文件夹 查找最新或未转换的 XLS 文件 转换为 Google 表格格式
  • 在 Internet Explorer 中离线(客户端)创建 csv 文件

    有没有办法使用纯 JavaScript 离线 本地 创建 CSV 文件并将该文件下载到本地文件系统 该方法应该适用于 IE9 或更低版本 我尝试过downloadify 但跨域问题使我无法在本地使用它 我还尝试创建 Base64 编码字符串
  • 创建一个 .rwl 对象

    我有一些树数据想要处理dplr包裹 我的问题是我只有 Excel 文件形式的数据 因此我将数据导出为 csv 然后将其输入 R 中 a lt read csv file 我需要将这些数据转换为 rwl能够运行一些dplr功能 我的猜测是我需
  • 解析 Google 表格中制表符分隔的文本文件

    我在网上有一个 txt 文件 其中包含制表符分隔值 TSV CSV 如下所示 产品IDtabColortabPricetabQuantity项目1tabRed tab 5 2 tab5项目2tabBlue tab 7 5 tab10 我使用
  • 如何修复 OnChange 脚本,该脚本运行良好,但在修改 Google 表格后停止运行

    概述 工作簿根据每条记录的类别分数计算每条记录 或行 的总体分数 类别分数是通过对每个记录的数百个数据点执行的计算得出的 根据我在网上找到的几个示例和教程 我编译了代码以发送名为 checkComplete 的 onChange 电子邮件
  • XSLT:CSV(或平面文件或纯文本)到 XML

    我正在尝试使用 XSLT 将纯文本文件转换为 XML 文件 我从 CSV 文件开始 因为这是一种众所周知的文件格式 我可以开始在 Google 上搜索示例 我偶然发现了这一点 http ajwelch blogspot com 2007 0
  • 使用 silverlight 4 和 c# 创建 CSV 下载

    我正在努力寻找示例或代码 以便能够在 silverlight 中创建 CSV 或文本文件作为可下载链接 我已经在 ASP net 中完成了此操作 但无法找到使用 Silverlight 的方法 我在旋转轮子吗 或者我应该创建一个 ASP 页
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • Android Excel CSV 的 MIME 数据类型是什么?

    我尝试了 text csv 甚至 application vnd ms excel 但 Excel 不会显示在选择列表中 很多其他应用程序也可以 void shareCsv Uri uri Context context Intent in
  • 对 CSV 文件中的列进行分组并连接另一列的值

    我刚刚开始使用 PowerShell 在任何地方都找不到这个问题的答案 尝试编写一个脚本来导入 CSV 文件并搜索该文件以查看是否有任何名称相同 如果名称相同 我想将所有这些值写在同一行上 并且只显示名称一次 例如 Name Number
  • str_getcsv到php中的多维数组

    我有这样的 csv 值 csv data test this thing hi there this is cool dude have fun 我想获取整个 CSV 字符串并将其读入多维数组 以便得到 array array test g
  • 如何在首次运行时填充大型 SQLite 数据库

    我正在开发一个基于 SQLite 数据库的字典应用程序 该数据库包含超过 300 000 行 问题在于 最终形式的数据库文件由全文索引表组成 并且重量远远超过150Mb 我通过创建无内容的 fts4 表设法将 db 文件大小降至最低 数据库
  • 如何将复杂的 csv 文件导入到 Matlab 中的数值向量

    我想知道我们应该如何读取由字符串 双精度数和字符等组成的复杂 csv 文件 例如 您能否提供一个可以在此 csv 文件中提取数值的成功命令 Click here http www ecb europa eu stats money yc d
  • 在iPhone上将CSV文件读入sqlite3

    有没有办法在iPhone上将CSV文件读入sqlite3 sqlite3 是否有类似于 SQL 命令的功能 LOAD DATA LOCAL INFILE file csv INTO TABLE TABLENAME FIELDS TERMIN
  • 使用 Pandas 从 csv 文件读取标题信息

    我有一个包含 14 行标题的数据文件 在标头中 有经纬度坐标和时间的元数据 我目前正在使用 pandas read csv filename delimiter header 14 读取文件 但这只是获取数据 我似乎无法获取元数据 有人知道
  • 如何将 CSV 文件读入 .NET 数据表

    如何将 CSV 文件加载到System Data DataTable 根据CSV文件创建数据表 常规 ADO net 功能是否允许这样做 我一直在使用OleDb提供者 但是 如果您正在读取具有数值的行 但希望将它们视为文本 则会出现问题 但

随机推荐

  • JavaScript 中的数字格式与 C# 类似

    有没有一种简单的方法可以在 JavaScript 中格式化数字 类似于 C 或 VB NET 中可用的格式化方法ToString format provider or String Format 一般来说 在 JavaScript 中设置数
  • 对多个视图控制器中的一个观察者使用 NSNotificationCenter 选择器

    我可以使用选择器吗getUpdate 在多个视图控制器中 我正在注册我的LevelViewController作为双方的观察者GameViewController and WinViewController 后 2 个视图控制器都有一个后退
  • Admob 与 Android:无法解析清单中的 android:configChanges

    我正在尝试使用 Admob 将广告添加到我的 Android 应用程序中 但遇到了困难 Admob 表示需要以下信息logcat E Ads 26043 The android configChanges value of the com
  • ASP.NET Core 3.1:API 控制器中的 User.Identity.Name 为空,但声明名称存在

    我正在将 Identity Server 添加到我现有的项目中 基本上我已经准备好了一切 但是当我向 API 发出请求时 User Identity Name一片空白 但是 那User Identity Claims包含名称声明 我知道通过
  • 如何将 MonoGame 项目模板添加到 MacOS 上的 MonoDevelop?

    根据自述文件 我应该 关闭 MonoDevelop 找到您的 MonoDevelop AppBundle 右键单击它并选择 显示包内容 按 Alt 并将目录 MonoDevelop MonoGame 2 5 拖放到 Contents Mac
  • 逻辑回归的 Statsmodels Anova

    我找到了statsmodels对线性模型进行方差分析测试非常有用 http www statsmodels org dev generated statsmodels stats anova anova lm html statsmodel
  • 使用 selenium 抓取 bet365.com 时出现的最后一个问题

    在社区查找信息后 我在帖子中看到下一个代码直到几天前才起作用 from selenium import webdriver options webdriver ChromeOptions options add argument windo
  • 如何通过ajax将集合/数组发送到mvc操作

    atm 我正在尝试这样 但没有运气 我的 Do 操作为空 var arr 31 17 16 get ids arr function d public ActionResult Do IEnumerable
  • 删除字符串中第一个字符的最快方法

    假设我们有以下字符串 string data temp string 如果我们想删除第一个字符 我们可以通过很多方式做到这一点 例如 data Remove 0 1 data TrimStart data Substring 1 但是 我真
  • 使用 imagegrabscreen 和 Wamp 捕获图像

    我正在尝试使用 imagegrabscreen 捕获本地网页 但我只得到黑色屏幕截图 我尝试了 SO 和其他网站上的问题中的几乎所有解决方案 但没有任何效果 我正在使用并完成以下操作 Windows 7 64 位 瓦普 2 2a 64 位
  • AsNoTracking() 的全局设置?

    原本我相信 context Configuration AutoDetectChangesEnabled false 将禁用更改跟踪 但不是 目前我需要使用AsNoTracking 我所有的 LINQ 查询 对于我的只读层 是否有全局设置来
  • 黑莓 - “您目前没有新通知”

    我正在使用下面的代码 特别是pushMessage方法 向用户显示一些通知 public final class MyApplicationMessageFolder public static final long MyFolderId
  • 如何复制导航栏渐变颜色?

    我一直在尝试复制渐变UINavigationBar用作自定义渐变UIButton同一视图上的子类对象 但是我不明白这些颜色是如何得出的 也就是说 您只需指定一种颜色即可设置UINavigationBar的背景颜色 tintColor 但它创
  • 对 ApplicationTokenProvider.LoginSilentAsync 的调用永远不会返回

    我尝试使用以下代码从本地 PC 连接到 AzureBillingAPI var serviceCreds await ApplicationTokenProvider LoginSilentAsync tenantDomain client
  • 无效捆绑错误 - “需要启动情节提要”

    当我尝试使用 Xcode 将应用程序提交到商店时 我不断收到此错误 错误 ITMS 90475 捆绑包无效 iPad 多任务支持需要在捆绑包 com companyname appname 中启动故事板 有人知道这个错误的真正含义吗 这是因
  • 在 Web 应用程序内部调试控制台应用程序

    有没有办法在 Web 应用程序项目内调试 NET c 控制台应用程序 我希望能够在我的 Web 应用程序中拥有一个控制台应用程序 以便快速测试 而无需使用单独的解决方案 这使我能够快速测试许多服务 而无需创建网页 它允许我毫无问题地添加控制
  • 强制谷歌图片搜索

    我有一个简单的网站 其中顶部内容是一个导航选项卡 带有两个导航列表 Web 和图像 在导航选项卡下 我有一个谷歌自定义搜索搜索元素 栏 Web 选项卡默认选择为 Web 默认情况下 谷歌自定义搜索将搜索网络 有什么方法可以强制它通过 php
  • 无法对 String[] 数组中的文件夹中的文件进行排序

    我的项目是将屏幕记录为图像序列 然后我计划加载所有图像目录以列出并使用计时器逐个图像地查看它们 而不是将其作为视频 但我以错误的顺序获取文件 如下所示 这段代码是从目录加载文件 string array1 Directory GetFile
  • Git + GitHub + Dropbox

    我是新来的git和 GitHub 到目前为止 我成功地设置了我的环境 以便我可以通过git程序 我拥有两台计算机 它们使用 Dropbox 共享文件 这也是我保存我的开发项目的地方 我想知道的是 有没有办法使用git GitHuband完全
  • Google Apps Script Utilities.parseCsv() 和替换字符 - �

    我正在开发一个项目 该项目涉及 Google Drive 中的 csv 文件 该文件每分钟左右更新一次新数据 我构建了一个电子表格仪表板 以使 csv 中的数据更有意义 我错误地认为我可以使用 Google 电子表格函数 importdat