【问题标题】:Import Excel file into Google Data sheet将 Excel 文件导入 Google 数据表
【发布时间】:2018-07-23 09:00:25
【问题描述】:

我是谷歌脚本的初学者,如果我问了任何愚蠢的事情,我深表歉意 我需要将 Excel 文件(我在 gmail 中收到)导入现有的 Google 工作表。下面的代码将做同样的事情,我要求但下面的代码只导入 CSV,任何人都可以帮我修改它,以便代码将导入 Excel 文件。

function importCSVFromGmail() {
  var threads = GmailApp.search("from:reports@example.com");var message = threads[0].getMessages()[0];
  var attachment = message.getAttachments()[0];
  if (attachment.getContentType() === "text/csv") { 
    var sheet = SpreadsheetApp.getActiveSheet();
    var csvData = Utilities.parseCsv(attachment.getDataAsString(), ",");
    sheet.clearContents().clearFormats();
    sheet.getRange(1, 1,csvData.length,csvData[0].length).setValues(csvData);
 }
}

【问题讨论】:

  • 嗨 Nico,实际上我无法添加代码。我正在使用下面的代码,请使用链接(我深表歉意)ctrlq.org/code/20279-import-csv-into-google-spreadsheet 此代码适用于 CSV 文件,但我的情况是 .xlsx 文件作为源
  • 为什么不能编辑问题并添加您宣布的代码?仅使用外部链接,如果链接的内容发生变化或消失,这个问题就会变得毫无用处
  • 对不起,现在我已经添加了代码,如果我导入 csv,代码效果很好,但在我的情况下,它的 excel 文件作为源

标签: google-apps-script google-sheets


【解决方案1】:

在您的代码中,这一行 var csvData = Utilities.parseCsv(attachment.getDataAsString(), ","); 完成了将 csv 文件数据转换为二维数组的所有繁重工作,您将其转储到谷歌表格中。

我认为您可以使用一些库来解析 excel 文件。

看看这里http://codetheory.in/parse-read-excel-files-xls-xlsx-javascript/

所以代码会变成这样:

// Search for attachment

// Check for it's content-type

// If it's a csv file, process it and convert into a 2D array

// Else if it's a excel file then use some library and convert it into 2D array

// Store that 2D array in sheet

【讨论】:

  • 是的,你是对的,但在谷歌脚本中我找不到这样的解析
  • 是的,也许您需要为此集成一些第 3 方库。您在我的答案中检查了该链接吗?看看这个也oss.sheetjs.com/js-xlsx
  • 亲爱的,对不起,但是我是否将我的查询发送到正确的组 Google 脚本中
  • 为什么要使用第三方? Google 可以导入 Excel 文件并将其转换为 Google 表格文件。然后 op 只需要使用SpreadsheetApp 方法来读取新的 Drive 文件并写入所需的数据。
  • 谢谢你能详细说明一下吗,或者如果你有代码,那将不胜感激它对我来说有点紧急
猜你喜欢
  • 2019-11-28
  • 2023-04-10
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
  • 2014-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多