Google Apps 脚本将表格数据插入文档抛出错误

发布于 2025-01-16 14:07:49 字数 787 浏览 1 评论 0原文

使用 Google Developer 帮助中心中的代码将表格插入文档效果很好。


// Create a two-dimensional array containing the cell contents.
var cells = [
  ['Row 1, Cell 1', 'Row 1, Cell 2'],
  ['Row 2, Cell 1', 'Row 2, Cell 2']
];

// Build a table from the array.
body.appendTable(cells);

但是,我需要做的是将电子表格中的单元格作为表格插入到我的文档中。我尝试按照此处的其他帖子编写此内容:

const body = DocumentApp.getActiveDocument().getBody();
const sheet = SpreadsheetApp.openById("spreadsheetID").getSheetByName("Reports");
var ssCells = sheet.getRange("A2:C5").getValues();
body.appendTable(ssCells);

但它会抛出错误“异常:参数(number[])与 DocumentApp.Body.appendTable 的方法签名不匹配。”我已经记录了 ssCells 变量,它返回一个普通的二维值数组,其格式与 Google 示例中的 cells 变量相同。

如何解决此错误并将 Sheets 数据作为表格插入到 Docs 中?

Using the code in the Google Developer help center to insert a table into a document works fine.


// Create a two-dimensional array containing the cell contents.
var cells = [
  ['Row 1, Cell 1', 'Row 1, Cell 2'],
  ['Row 2, Cell 1', 'Row 2, Cell 2']
];

// Build a table from the array.
body.appendTable(cells);

However, what I need to do is insert cells from a spreadsheet as a table to my document. I've tried following other posts from here and wrote this:

const body = DocumentApp.getActiveDocument().getBody();
const sheet = SpreadsheetApp.openById("spreadsheetID").getSheetByName("Reports");
var ssCells = sheet.getRange("A2:C5").getValues();
body.appendTable(ssCells);

but it throws the error "Exception: The parameters (number[]) don't match the method signature for DocumentApp.Body.appendTable." I've logged the ssCells variable and it returns a normal 2d array of values, which looks in format identical to the cells variable from the Google example.

How do I get past this error and insert Sheets data as a table to Docs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

枕头说它不想醒 2025-01-23 14:07:49

我的表格之一列的数值杀死了整个事情。使用 .getDisplayValues() 返回字符串版本并且它可以工作。

const body = DocumentApp.getActiveDocument().getBody();
const sheet = SpreadsheetApp.openById("spreadsheetID").getSheetByName("Reports");
var ssCells = sheet.getRange("A2:C5").getDisplayValues();
body.appendTable(ssCells);

One of my Sheets columns has numerical values which killed the whole thing. Using .getDisplayValues() to return the String versions and it works.

const body = DocumentApp.getActiveDocument().getBody();
const sheet = SpreadsheetApp.openById("spreadsheetID").getSheetByName("Reports");
var ssCells = sheet.getRange("A2:C5").getDisplayValues();
body.appendTable(ssCells);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文