是否有将Google文档转换为Google电子表格的功能?

时间:2019-07-16 05:06:47

标签: google-apps-script google-sheets google-docs

我需要一种将数据从Google文档传输到Google电子表格的方法(我知道有点倒退)。我需要文档中的换行符等同于在下面开始新的单元格。也就是说,Google文档中的每一行都有其自己的单元格。

我尝试从google文档获取正文文本并将第一个单元格设置为该变量,但这仅将数据粘贴到单个A1单元格中(有点希望它类似于复制和粘贴的方式doc正文文本放入A1单元格,它将一直填充A列中的单元格)

var body = openedFile.getBody().getText();
var newSpreadsheet = SpreadsheetApp.create('TEST').getId();
var testSpreadsheet = SpreadsheetApp.openById(newSpreadsheet);
testSpreadsheet.getRange('A1').setValue(bodyAll);

1 个答案:

答案 0 :(得分:2)

  • 您要将Document的每个段落放在脚本中创建的Spreadsheet的单元格中。
    • 在脚本中,您的Google文档仅包含文本。您的Google文档不包含表格,列表,图像等。

如果我的理解是正确的,那么该修改如何?

模式1:

在这种模式下,body中的var body = openedFile.getBody().getText()\n分割。然后,将值放入创建的电子表格中。

修改后的脚本:

var openedFile = DocumentApp.openById("###"); // Please set Document ID here.
var body = openedFile.getBody().getText();
var bodyAll = body.split("\n").reduce(function(ar, e) {
  if (e) ar.push([e]); // If you want to include the empty paragraph, please modify to ar.push([e]);
  return ar;
}, []);
var newSpreadsheet = SpreadsheetApp.create('TEST');
newSpreadsheet.getSheets()[0].getRange(1, 1, bodyAll.length, bodyAll[0].length).setValues(bodyAll);

模式2:

在这种模式下,从Document的正文中检索段落,并检索每个文本。然后,将值放入创建的电子表格中。

修改后的脚本:

var openedFile = DocumentApp.openById("###"); // Please set Document ID here.
var body = openedFile.getBody();
var bodyAll = body.getParagraphs().reduce(function(ar, e) {
  var temp = e.getText();
  if (temp) ar.push([temp]); // If you want to include the empty paragraph, please modify to ar.push([temp]);
  return ar;
}, [])
var newSpreadsheet = SpreadsheetApp.create('TEST');
newSpreadsheet.getSheets()[0].getRange(1, 1, bodyAll.length, bodyAll[0].length).setValues(bodyAll);

注意:

  • 在此脚本中,空段落将被忽略。如果要包括空的段落,请像注释一样修改脚本。

参考:

如果上述脚本不能解决您的问题,对不起。那时,为了正确理解您的情况,您能否提供所需结果的样本文档和样本电子表格?当然,请从其中删除您的个人信息。