解析 google 文档的文本并将结果复制到 sheet
parse google document for text and copy result to sheet
我希望使用正则表达式解析 Google Drive 文件夹中的一系列文档。
文档包含设备型号和序列号。然后我希望将结果逐行复制到 google sheet 中。我已经通过电子邮件成功完成了一项类似的任务,但对于 google 文档无济于事。
谁能提供一些指导。我已经在 google 文档的 'find and replace' 菜单中测试了正则表达式,它们工作正常。以下只是尝试查看我是否可以捕获一些数据并将其写入活动 sheet.
中的单元格
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);
}
您想检索文档中与(\W|^)GSS\d{2}H(\W|$)
匹配的所有值,并将结果逐行放入电子表格。如果我的理解是正确的,这个修改怎么样?我认为您的情况有几个答案。所以请将此视为其中之一。
修改点:
- 从文档中检索文本。
- 使用正则表达式检索所有匹配的值。
- 对于这种情况,我使用了RegExp#exec。
- 将结果放入电子表格。
修改脚本:
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);
}
如果这不是您想要的,我很抱歉。届时能否请您提供您需要的示例输入输出?我想修改我的答案。
我希望使用正则表达式解析 Google Drive 文件夹中的一系列文档。
文档包含设备型号和序列号。然后我希望将结果逐行复制到 google sheet 中。我已经通过电子邮件成功完成了一项类似的任务,但对于 google 文档无济于事。
谁能提供一些指导。我已经在 google 文档的 'find and replace' 菜单中测试了正则表达式,它们工作正常。以下只是尝试查看我是否可以捕获一些数据并将其写入活动 sheet.
中的单元格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);
}
您想检索文档中与(\W|^)GSS\d{2}H(\W|$)
匹配的所有值,并将结果逐行放入电子表格。如果我的理解是正确的,这个修改怎么样?我认为您的情况有几个答案。所以请将此视为其中之一。
修改点:
- 从文档中检索文本。
- 使用正则表达式检索所有匹配的值。
- 对于这种情况,我使用了RegExp#exec。
- 将结果放入电子表格。
修改脚本:
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);
}
如果这不是您想要的,我很抱歉。届时能否请您提供您需要的示例输入输出?我想修改我的答案。