解析文档的谷歌文档并将结果复制到工作表

时间:2018-06-09 07:03:36

标签: regex google-apps-script google-sheets google-docs text-parsing

我希望使用正则表达式解析Google云端硬盘文件夹中的一系列文档。

文件包含设备型号和序列号。我希望然后逐行将结果复制到谷歌表。我已成功完成了与电子邮件相似的任务,但无法使用谷歌文档。

任何人都可以提供一些指导。我在google docs的'查找和替换'菜单中测试了正则表达式,它们运行正常。以下只是尝试查看是否可以捕获某些数据并将其写入活动工作表中的单元格。

function write() {
var ss= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var doc = 
DocumentApp.openById('1ZNqJjSJo1wkD3eaCRTY64g98hYEY77D4MDU6XpvA4MI');
var body = doc.getBody();
var text = body.findText('(\W|^)GSS\d{2}H(\W|$)')
  ss.getRange(1,1).setValue(text);

}

1 个答案:

答案 0 :(得分:1)

您想要检索文档中(\W|^)GSS\d{2}H(\W|$)匹配的所有值,并将结果逐行放入电子表格中。如果我的理解是正确的,那么这个修改怎么样?我认为你的情况有几个答案。所以请把它想象成其中之一。

修改要点:

  • 从文档中检索文本。
  • 使用正则表达式检索所有匹配的值。
  • 将结果放入电子表格。

修改后的脚本:

function write() {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var doc = DocumentApp.openById('1ZNqJjSJo1wkD3eaCRTY64g98hYEY77D4MDU6XpvA4MI');
  var body = doc.getBody();

  // Modified script
  var text = doc.getBody().getText();
  var result = [];
  var r = /(\W|^)GSS\d{2}H(\W|$)/g;
  while ((res = r.exec(text)) !== null) { // or while (res = r.exec(text)) {
    result.push([res[0]]);
  }
  ss.getRange(ss.getLastRow() + 1, 1, result.length, 1).setValues(result);
}

如果这不是你想要的,我很抱歉。那时,您能否提供您需要的样本输入和输出?我想修改我的答案。