私はこの関数(ありがとう、@ Mogsdad)を作成して、次のようにテキストGoogleドキュメントのテーブルのセルをマージしました。
function onOpen() {
// Add a menu with some items, some separators, and a sub-menu.
DocumentApp.getUi().createMenu('Sample')
.addItem('merge cells of a table', 'mergeCells')
.addToUi();
}
function mergeCells() {
var body = DocumentApp.getActiveDocument().getBody();
for (var p= 0; p< body.getNumChildren(); p++) {
var child = body.getChild(p);
if (child.getType() == DocumentApp.ElementType.TABLE){
// Assume we've already located our table
var table = child;
var tableRow = table.getChild(2); // gets third row
var tableCell = tableRow.getChild(1); // gets second cell in row
tableCell.merge(); // Merges seconde cell with first cell.
}
}
}
しかし、コードを実行すると、次の奇妙な結果が得られました(予想とは大きく異なり、セルが同じ次元のテーブルにマージされています)。
それを修正する方法はありますか? (同じ寸法のセルをマージ)
[editto address the update in Google Docs]
これは現在不可能です。 getColSpan および getRowSpan を呼び出すことで、セルがマージされているかどうかを知ることができますが、setterメソッドはありません。
次の問題 にスターを付けて、これに関する更新で通知を受けてください。
見つけた merge 関数は、テーブルセルに固有のものではなく、要素を同じタイプの前の兄弟とマージして、それらのコンテンツを結合するためにあります。
[オリジナル回答]
スプレッドシートで実行できるように、結合されたセルがあることを期待していた場合、それは不可能です。それがGoogleドキュメントでは不可能であるという理由だけで(少なくともまだ)。したがって、APIはこれを実行できません(手動でも実行できることのみを実行できます)。
この merge 関数は、おそらく想像したように、テーブルセルに固有のものではありません。設計どおりに動作しています。
これは回避策で行うことができます。この図面ドキュメントに図面を追加し、テーブルを追加します。このドキュメントでは、2つのセルを選択してマウスの右ボタンを押すと、オプション「セルのマージ」が可能になります。 チュートリアルについてはこのYouTubeビデオを参照してください
Googleドキュメントに変換するときにMSドキュメントのテーブル内のマージされたセルを解決する方法は次のとおりです。MSWordドキュメントに戻ってマージされたセルを削除し、コピーして貼り付けるか、MSWordをGoogleドキュメントに変換するという考え方です。 。このようにして、MSドキュメントのテーブルをGoogleドキュメントに簡単に変換できます。ただし、Googleドキュメント内では、セルを結合することはできません。