Apps Script公式リファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2024年5月25日土曜日

Google Slidesで現在選択している表に値を入れたい3 - Insert values into the active table3


上記のリンク先では、値の数に応じて行を追加しました。
In the linked article above, rows were added to the table depending on the number of values.


今回は、逆に行を削除するコードを試してみます。
This time, I will try the code that deletes rows according to the number of values.



今回の例でも、3行3列の表を配置しておきます。
In this example, a 3x3 table will be pre-placed on the slide.


表に入れる値は、2行3列の配列を用意します。
Prepare a 2x3 array of values to insert into the table.
const values = [
['Value 1', 'Value 2', 'Value 3'],
['Value 4', 'Value 5', 'Value 6']
];



Code.gs
function insertValuesIntoSelectedTable() {
const presentation = SlidesApp.getActivePresentation();
const selection = presentation.getSelection();
const pageElement = selection.getPageElementRange().getPageElements()[0];
const table = pageElement.asTable();
const values = [
['Value 1', 'Value 2', 'Value 3'],
['Value 4', 'Value 5', 'Value 6']
];

const tableRows = table.getNumRows();

if(values.length !== tableRows) {
const diffRows = Math.abs(values.length - tableRows);
for(let i = 0; i < diffRows; i++) {
table.getRow(tableRows - 1).remove();
}
}

for (var row = 0; row < values.length; row++) {
for (var col = 0; col < values[row].length; col++) {
if (row < table.getNumRows() && col < table.getNumColumns()) {
table.getCell(row, col).getText().setText(values[row][col]);
}
}
}
}


表を選択して、insertValuesIntoSelectedTable() を実行します。
Select the table and execute the insertValuesIntoSelectedTable() function.


下段の一行が削除されて、用意した配列の値がすべて入力されます。
The bottom row is deleted and all values from the prepared array are inserted.


Tips

値の数と表の行数の差は、今回マイナスになるため、Math.abs() で絶対値にしています。
Since the difference between the number of values and the number of rows in the table can be negative in this case, we use Math.abs() to get the absolute value.

const diffRows = Math.abs(values.length - tableRows);


Reference

Class Table > remove()

Math.abs()

2024年5月24日金曜日

Google Slidesで現在選択している表に値を入れたい2 - Insert values into the active table2


Google Slidesで現在選択している表に値を入れたい - Insert values into the active table
上記のリンク先のコードは、表の行数と値の数が一致していました。
In the code linked above, the number of rows in the table matched the number of values.


今回は、値の数が表と異なる場合、表の行を増やして値を入れるコードを試しました。
This time, I tried with code that dynamically adds rows to the table in Slides if the number of values doesn't match the existing table size.



今回の例では、3行3列の表を配置しておきます。
In this example, a 3x3 table will be pre-placed on the slide.

表に入れる値は、4行3列の配列を用意します。
Prepare a 4x3 array of values to insert into the table.
var values = [
['Value 1', 'Value 2', 'Value 3'],
['Value 4', 'Value 5', 'Value 6'],
['Value 7', 'Value 8', 'Value 9'],
['Value 10', 'Value 11', 'Value 12']
];



Code.gs
function insertValuesIntoSelectedTable() {
var presentation = SlidesApp.getActivePresentation();
var selection = presentation.getSelection();
var pageElement = selection.getPageElementRange().getPageElements()[0];
var table = pageElement.asTable();
var values = [
['Value 1', 'Value 2', 'Value 3'],
['Value 4', 'Value 5', 'Value 6'],
['Value 7', 'Value 8', 'Value 9'],
['Value 10', 'Value 11', 'Value 12']
];

const tableRows = table.getNumRows();

if(values.length !== tableRows) {
const diffRows = values.length - tableRows;
for(let i = 0; i < diffRows; i++) {
table.appendRow();
}
}

for (var row = 0; row < values.length; row++) {
for (var col = 0; col < values[row].length; col++) {
if (row < table.getNumRows() && col < table.getNumColumns()) {
table.getCell(row, col).getText().setText(values[row][col]);
}
}
}
}


表を選択して、insertValuesIntoSelectedTable() を実行します。
Select the table and execute the insertValuesIntoSelectedTable() function.


下に一行追加されて、用意した配列の値がすべて入力されます。
A new row is added below the table, and all the values from the prepared array are inserted into it.


Reference

Class Table > appendRow()

2024年5月23日木曜日

Google Slidesの表でセルの幅を変えたい - Change the width of cells in a table in Slides.


この記事で実行するコードは、上記のリンク先でも利用したGoogle Slides APIを追加する必要があります。
The code executed in this article requires the Google Slides API, which was also used in the link above.


今回はGoogle Slidesで現在選択肢している表のセルの幅を指定するコードを試しました。
This time, I tried the code to specify the width of the currently selected table cells in Google Slides.


配置してある4行3列の表で、セルの幅を変更するコードです。
The code is to change the width of cells in an existing 4-row, 3-column table in Google Slides.



Code.gs
function createTableInGoogleSlides() {
const presentation = SlidesApp.getActivePresentation();
const selection = presentation.getSelection();
const pageElement = selection.getPageElementRange().getPageElements()[0];
const table = pageElement.asTable();
const objectId = table.getObjectId();

const resource = {
requests: [
{
updateTableColumnProperties: {
tableColumnProperties: {
columnWidth: {
magnitude: 100, unit: "pt"
}
},
columnIndices: [0,1],
objectId: objectId,
fields: "columnWidth"
}
},
{
updateTableColumnProperties: {
tableColumnProperties: {
columnWidth: {
magnitude: 300, unit: "pt"
}
},
columnIndices: [2],
objectId: objectId,
fields: "columnWidth"
}
},
{
updateTableRowProperties: {
tableRowProperties: {
minRowHeight: {
magnitude: 60, unit: "pt"
}
},
rowIndices: [1,2,3],
objectId: objectId,
fields: "minRowHeight"
}
}
]
};
Slides.Presentations.batchUpdate(resource, presentation.getId());
}



Tips

Google Slides APIは以下のように追加します。
You can add the Google Slides API as follows:


サービス > Google Slides API > 追加
Services > Google Slides API > Add


Reference

Setting width and height of tables with Google Slides Apps Script

Google Slides API > Request

Google Slides API > UpdateTableColumnPropertiesRequest

Google Slides API > UpdateTableRowPropertiesRequest

Google Slides API > Tables

Google Slidesの表でセルを結合したい - merge cells in a table on Google Slides

2024年5月22日水曜日

Google SlidesにApps Scriptで表を配置したい


Google SlidesにApps Scriptで表を配置したくて試したコードです。
I tried writing Apps Script to place a table in Google Slides.


今回の例では、4行3列の表を配置します。
In this example, we will place a 4-row, 3-column table.


手動で配置する場合は、挿入 > 表 > 行列選択で配置します。
To place a table manually, go to Insert > Table > Select rows and columns.



Code.gs
function createTableInGoogleSlides() {
const presentation = SlidesApp.getActivePresentation();
const slide = presentation.getSelection().getCurrentPage();

const numRows = 4;
const numCols = 3;
const table = slide.insertTable(numRows, numCols);
table.setLeft(20).setTop(30);
}


createTableInGoogleSlides()を実行すると、左から20、上から30の位置に4行3列の表が配置されます。
After execute "createTableInGoogleSlides()", a table with 4 rows and 3 columns will be placed at a position 20 points from the left and 30 points from the top of the slide.


Reference

insertTable(numRows, numColumns)

insertTable(numRows, numColumns, left, top, width, height)

setLeft(left)

setTop(top)

Latest post

Google Slidesで現在選択している表に値を入れたい3 - Insert values into the active table3

Google Slidesで現在選択している表に値を入れたい2 - Insert values into the active table2 上記のリンク先では、値の数に応じて行を追加しました。 In the linked article above, rows were add...