Cara mendapatkan ketinggian sel Tabel yang benar saat teks di dalam sel
Sejarah: - Ukuran bentuk tidak sama dengan ukuran sel tabel dan pas dengan teks di dalam bentuk
Solusi bekerja dengan sempurna, tetapi saya menemukan beberapa masalah ketika kami akan mengubah tinggi teks dari teks apa pun. Seperti yang saya lakukan dengan " Teks 1 ", saya mengubah tinggi " Teks 1 ", maka hasil tinggi baris akan menjadi 0,0

Batasan Skrip Google Apps: Kami tidak bisa mendapatkan tinggi sel, tidak bisa mendapatkan bantalan sel.
Setelah beberapa penelitian mencoba mengekstrak paragraf sel sebagai teks.
Skrip yang diperbarui dengan modifikasi saya dan Tanaike :
var rowHeight = 0.0;
var tableCell = pageElements[index].asTable().getCell(ir, ic);
//Get cell color
let cellFill = tableCell.getFill().getSolidFill();
var cellParaText = tableCell.getText().getParagraphs();
cellParaText.forEach(function(item, index) {
var t = cellParaText[index].getRange();
//I tried to applied Tanaike's solution here
rowHeight = rowHeight + ( t.asString().split("\n").length - 1 ) * ( t.getTextStyle().getFontSize() / 72 * 96 )
//rowHeight = rowHeight + cellParaText[index].getRange().getTextStyle().getFontSize();
rowHeight = rowHeight + cellParaText[index].getRange().getParagraphStyle().getSpaceAbove()
rowHeight = rowHeight + cellParaText[index].getRange().getParagraphStyle().getSpaceBelow()
rowHeight = rowHeight + (cellParaText[index].getRange().getParagraphStyle().getLineSpacing()/100)
});
//Get cell text, text color and text background color
let cellText = tableCell.getText().asString()
//insert the RECTANGLE shape
let insertedShape = selection.getCurrentPage()
.insertShape(SlidesApp.ShapeType.RECTANGLE, cellLeft+5, cellTop+5, columnWidth, rowHeight);
Skrip lengkap di sini https://pastebin.com/keXKHbhC
Ini Tabel saya di GSlide - https://docs.google.com/presentation/d/10nupvk-2BZDSV6-gPn_n2LkrUtkCxot7qr_jcZGBHqw/edit#slide=id.p
Masalahnya masih sama dengan tinggi bentuk yang sama dengan sel tabel, Lihat gambar

Jawaban
Bagaimana dengan modifikasi ini?
Poin modifikasi:
- Ketika saya memeriksa
getSpaceAbove()
dangetSpaceBelow()
, tampaknya itu0
. - Saya pikir itu
getLineSpacing()
mungkin digunakan. - Dan, saya memperhatikan satu hal penting lagi. Misalnya bila terdapat 3 paragraf, sepertinya harus menggunakan spasi dari 4 paragraf.
Saat poin ini direfleksikan ke naskah Anda https://pastebin.com/keXKHbhC, menjadi sebagai berikut.
Skrip yang dimodifikasi:
Dari:
cellParaText.forEach(function(item, index) {
var t = cellParaText[index].getRange();
//i tried to applied Tanike's solution here
rowHeight = rowHeight + ( t.asString().split("\n").length - 1 ) * ( t.getTextStyle().getFontSize() / 72 * 96 )
//rowHeight = rowHeight + cellParaText[index].getRange().getTextStyle().getFontSize();
rowHeight = rowHeight + cellParaText[index].getRange().getParagraphStyle().getSpaceAbove()
rowHeight = rowHeight + cellParaText[index].getRange().getParagraphStyle().getSpaceBelow()
rowHeight = rowHeight + (cellParaText[index].getRange().getParagraphStyle().getLineSpacing()/100)
});
Untuk:
cellParaText.forEach(function(item, index, a) {
var t = cellParaText[index].getRange();
var lineSpace = cellParaText[index].getRange().getParagraphStyle().getLineSpacing() / 100;
var fontSize = t.getTextStyle().getFontSize() / 72 * 96;
rowHeight += fontSize * (a.length > 1 ? lineSpace : 1);
if (index == a.length - 1) rowHeight += fontSize;
});
Dan juga, harap modifikasi sebagai berikut.
Dari:
insertedShape.getText()
.getParagraphStyle()
.setLineSpacing(cellParagraph.getLineSpacing()/100)
.setSpaceAbove(cellParagraph.getSpaceAbove())
.setSpaceBelow(cellParagraph.getSpaceBelow())
.setSpacingMode(cellParagraph.getSpacingMode())
.setParagraphAlignment(cellParagraph.getParagraphAlignment())
Untuk:
insertedShape.getText()
.getParagraphStyle()
.setParagraphAlignment(cellParagraph.getParagraphAlignment())
Hasil:
Ketika sampel Google Slides Anda digunakan dengan skrip yang dimodifikasi di atas, itu menjadi sebagai berikut.

catatan:
- Ini adalah contoh skrip sederhana untuk sampel Anda. Jadi saat Anda menggunakan contoh lain, skrip mungkin perlu dimodifikasi. Harap berhati-hati ini.
- Dalam kasus ini, dari sampel Anda, diasumsikan bahwa setiap paragraf memiliki ukuran font yang sama. Harap berhati-hati ini.