web-dev-qa-db-ja.com

この奇妙な結果なしに、Googleテキストドキュメントのテーブルの2つのセルをマージするにはどうすればよいですか?

私はこの関数(ありがとう、@ Mogsdad)を作成して、次のようにテキストGoogleドキュメントのテーブルのセルをマージしました。

enter image description here

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.      
      }
  }
}

しかし、コードを実行すると、次の奇妙な結果が得られました(予想とは大きく異なり、セルが同じ次元のテーブルにマージされています)。

enter image description here

それを修正する方法はありますか? (同じ寸法のセルをマージ)

8
craftApprentice

[editto address the update in Google Docs]

これは現在不可能です。 getColSpan および getRowSpan を呼び出すことで、セルがマージされているかどうかを知ることができますが、setterメソッドはありません。

次の問題 にスターを付けて、これに関する更新で通知を受けてください。

見つけた merge 関数は、テーブルセルに固有のものではなく、要素を同じタイプの前の兄弟とマージして、それらのコンテンツを結合するためにあります。


[オリジナル回答]

スプレッドシートで実行できるように、結合されたセルがあることを期待していた場合、それは不可能です。それがGoogleドキュメントでは不可能であるという理由だけで(少なくともまだ)。したがって、APIはこれを実行できません(手動でも実行できることのみを実行できます)。

この merge 関数は、おそらく想像したように、テーブルセルに固有のものではありません。設計どおりに動作しています。

11

これは回避策で行うことができます。この図面ドキュメントに図面を追加し、テーブルを追加します。このドキュメントでは、2つのセルを選択してマウスの右ボタンを押すと、オプション「セルのマージ」が可能になります。 チュートリアルについてはこのYouTubeビデオを参照してください

2
Remi

Googleドキュメントに変換するときにMSドキュメントのテーブル内のマージされたセルを解決する方法は次のとおりです。MSWordドキュメントに戻ってマージされたセルを削除し、コピーして貼り付けるか、MSWordをGoogleドキュメントに変換するという考え方です。 。このようにして、MSドキュメントのテーブルをGoogleドキュメントに簡単に変換できます。ただし、Googleドキュメント内では、セルを結合することはできません。

0
Sunil Nair