我正在使用Google Apps脚本来操作幻灯片文件。我想在幻灯片上创建表格,并设置行/列,特定单元格或表格整体的高度/宽度。除了this page似乎不太有前途之外,文档对此没有任何说明。
任何人都知道解决此问题的方法,还是我必须求助于Slides API?
答案 0 :(得分:1)
我能像上面那样理解。
创建新表格时,可以使用幻灯片服务设置表格的高度和宽度。但是在当前阶段,尚无法使用Slides Service修改已创建表格的高度和宽度以及特定单元格。我认为这可能会在将来的更新中实现。
作为当前的解决方法,使用Slides API可以实现这一目的。
在此示例脚本中,使用了幻灯片服务。在幻灯片的第一页上,分别以宽度和高度分别为300点和100点创建新表格。
var slides = SlidesApp.getActivePresentation();
var slide = slides.getSlides()[0];
var table = slide.insertTable(3, 3, 0, 0, 300, 100);
在此示例脚本中,使用了Slides API。将第一页上表格“ B2”的单元格的宽度和高度分别修改为300点和100点。
var slides = SlidesApp.getActivePresentation();
var slide = slides.getSlides()[0];
var objectId = slide.getTables()[0].getObjectId();
SlidesApp.getActivePresentation().saveAndClose();
var resource = {requests: [
{updateTableColumnProperties: {tableColumnProperties:
{columnWidth: {magnitude: 300, unit: "PT"}},
columnIndices: [1],
objectId: objectId,
fields: "columnWidth"
}},
{updateTableRowProperties: {tableRowProperties:
{minRowHeight: {magnitude: 100, unit: "PT"}},
rowIndices: [1],
objectId: objectId,
fields: "minRowHeight"
}}
]};
Slides.Presentations.batchUpdate(resource, slides.getId());
在此示例脚本中,仅使用Slides API,可以获得“示例脚本1”和“示例脚本2”的结果。
var slides = SlidesApp.getActivePresentation();
var slide = slides.getSlides()[0];
var objectId = "sampleTable" + (new Date().getTime());
var resource = {requests: [
{createTable: {
rows: 3,
columns: 3,
elementProperties: {pageObjectId: slide.getObjectId(), size: {width: {magnitude: 300, unit: "PT"}, height: {magnitude: 100, unit: "PT"}}},
objectId: objectId
}},
{updateTableColumnProperties: {
tableColumnProperties: {columnWidth: {magnitude: 300, unit: "PT"}},
columnIndices: [1],
objectId: objectId,
fields: "columnWidth"
}},
{updateTableRowProperties: {
tableRowProperties: {minRowHeight: {magnitude: 100, unit: "PT"}},
rowIndices: [1],
objectId: objectId,
fields: "minRowHeight"
}}
]};
Slides.Presentations.batchUpdate(resource, slides.getId());