GoogleスプレッドシートをGoogleドキュメントに埋め込む


82

Microsoft ExcelやMicrosoft WordのようなGoogleドキュメントにGoogleスプレッドシートを埋め込むことはできますか?スプレッドシートのグラフはどうですか?


1
スプレッドシートからグラフをコピーしてドキュメントに貼り付けることができます。ただし、スプレッドシート自体を埋め込むことはできません。これをGoogleグループのドキュメントの機能リクエストとして送信しました。
-mikeschuld

回答:


24

今日(2016-05-20)から、GoogleはGoogleスプレッドシートからグラフをGoogleドキュメントに埋め込む機能を展開し始めています。この時点で、3つのGoogleアカウントのうち2つがInsertメニューでオプションを使用可能にしInsert→ChartInsert→Drawing…アイテムの下に新しいサブメニューがあります。

このようなチャートを挿入すると、元のスプレッドシートにリンクされたままになります。必要なのが表形式のデータだけである場合、データを単純な表として表示するために使用できる表グラフタイプがあります。

この段階ではいくつかの制限があり(たとえば、グラフのサイズに関して)、挿入する前にスプレッドシートにグラフが存在する必要がありますが、これは正しい方向に進んでいます…


スプレッドシートまたは表を挿入するには、スプレッドシートからドキュメントにコピー&ペーストしてGoogleスプレッドシートから表を追加を使用し、リンクされたオプションを選択します。

ドキュメントを開いているときにソーススプレッドシートを変更すると、グラフはライブで更新されませんが、ドキュメントは変更を検出し、埋め込みスプレッドシートの上に[ソース]の最新の変更を反映する[ 更新 ]ボタンを表示します。


これは、スプレッドシートが自動的に変化する数式や方程式を使用している場合(たとえば、特定の日付に基づいて)、更新されないことを意味しますか?
エリックハンフリー

これはテストしていませんが、グラフを更新するにはスプレッドシートを開いてから、それを埋め込むドキュメントのグラフの更新に同意する必要があると思われます。そうでない場合は、私たち全員にお知らせください。
ジャンルネブーヴィエ

1
今日から、テーブルを埋め込むことできます。回答は受け入れられているため、この新しい機能で編集することをお勧めします。

1
再情報をありがとう。直接テーブル埋め込み。この段階では、Google Apps for Workアカウントでこの機能がまだ機能していないようです。気が付いたらすぐに投稿を更新します。
ジャンルネブーヴィエ

@Michelle試しましたが、不可能なようです。スプレッドシートファイルからコピーされたテーブルに[更新]ボタンが表示されません。
ADTC

32

私の知る限り、コピーして、スプレッドシートからテキストドキュメントにのみ貼り付けることができます。スプレッドシートはテーブルとして挿入されますが、リンクされていません。スプレッドシートで何かを変更しても、テキストドキュメントには反映されません。

もちろん、間違いであると証明されることは絶対に大好きです!


1
悲しいことに、この時点でそれが私の唯一の選択肢に見えます。
エール

1
以下の私の回答を参照してください。これは少し使いやすくなり、動的更新を提供する新しいオプションがあります。
ジャンルネブーヴィエ

11

これは、特定のスプレッドシート内の特定の範囲のコンテンツを含むテーブルを挿入できるスクリプトベースのソリューションです。データをリアルタイムで同期する方法を見つけようとしませんでした。スプレッドシートを編集するたびに転送しなければならない可能性のある大量のデータを考えると、実用的とは思えませんでした。代わりに、スクリプトはカスタムメニュー項目「データの更新」をドキュメントに追加します。

スクリプトはドキュメントにバインドする必要があります(つまり、ドキュメントメニューの[ツール]> [スクリプトエディター]を使用して作成します)。スプレッドシートのURL、および使用するシートと範囲は、スクリプト内で指定されます。シート上のすべてのデータを埋め込むには、交換してください.getRange(rangeName).getDataRange()

関数updateDataが最初に実行されると、ドキュメントの最後にテーブルが追加されます。後続の実行で、テーブルを所定の場所に更新します(つまり、テーブルの後にさらにテキストが追加された場合、順序は保持されます)。

貼り付けられたコピーは新しいオブジェクトであるため、テーブルをカットアンドペーストすると更新プロセスが中断されることに注意してください(スクリプトは最後に新しいテーブルを追加します)。代わりに、テーブルの周りのテキストをカットアンドペーストします。

function onOpen() {
  DocumentApp.getUi()
             .createMenu('Custom')
             .addItem('Update Data', 'updateData')
             .addToUi();
}

function updateData() {
  var ssUrl = ' spreadsheet url here ';
  var sheetName = 'Sheet2';   // name of sheet to use
  var rangeName = 'A1:C3';    // range of values to include 

  var values = SpreadsheetApp.openByUrl(ssUrl)
                             .getSheetByName(sheetName)
                             .getRange(rangeName)
                             .getValues();
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var ranges = doc.getNamedRanges('embeddedSheet-range');
  if (ranges.length == 0) {
    var table = body.appendTable(values);
  }
  else {
    tableRange = ranges[0];
    table = tableRange.getRange().getRangeElements()[0].getElement();
    var ind = body.getChildIndex(table);
    tableRange.remove();
    body.removeChild(table);
    table = body.insertTable(ind, values);
  }
  var rangeBuilder = doc.newRange();
  rangeBuilder.addElement(table);
  doc.addNamedRange('embeddedSheet-range', rangeBuilder.build());
}

テクニカルノート

  1. 手動に加えて、1時間ごとにデータを同期することもできます。スクリプトエディターの[リソース]メニューから時間ベースのトリガーを追加するだけで、関数updateDataが実行されます。

  2. 代わりに、このスクリプトをソーススプレッドシートにバインドするように調整することもできます。これには、ドキュメントの開き方(URLなど)の変更が必要になりますが、それ以外のロジックは同じです。

  3. スクリプトの面倒な部分は、ドキュメント内の既存のテーブルのハンドルを取得することです。これには、名前付き範囲内に配置する必要があります。また、既存のテーブルのエントリを台無しにするよりも、テーブル要素を完全に置き換える方がはるかに便利です。名前付き範囲は不変であるため、名前付き範囲は含まれるテーブルとともに削除され、新しいテーブルとともに再び作成されます。


よく働く。書式設定(特にセルの背景色)を取得する方法はありますか?
cheshirekow

注:「スプレッドシートのURL」には/edit#gid=0、最後の部分を含む完全なURLが含まれているようです。
cheshirekow

別のスプレッドシートのフォーマットをインポートする方法はありません。

リンクも転送されず、色も転送されません。このスクリプトを変更してすべてのフォーマットを含める方法はありますか?カットアンドペーストの問題に対する非常に賢い回避策は、魅力のように機能しました!
unc0nnected

4

はい、できます。シートの内容をコピーしてドキュメントに貼り付けると、右隅にスプレッドシートにリンクするかどうか尋ねられます。その場合、スプレッドシートを編集した後、ドキュメントの更新アイコンをクリックして、変更をドキュメントに組み込むことができます。


2018年初頭の時点で、これはGoogleドキュメントにGoogleスプレッドシートテーブルを挿入することに関する質問の一部に対する最良の回答です。
18年

そして、私が知る限り、このスレッドを見つけた理由は、400セルに制限されていることです。
トレイ

3

別の方法は、Googleサイト、またはiframeコンテンツの埋め込みを許可する他のコンテンツエディターを使用することです。

GoogleサイトのページにGoogleスプレッドシートを埋め込むには

  1. 新しいサイトを作成するか、既存のサイトに移動します。
  2. 新しいページを作成するか、既存のページで[編集]をクリックします。
  3. [挿入]> [ドライブ]> [スプレッドシート]をクリックします
  4. スプレッドシートを選択
  5. オプションを設定する
  6. 保存をクリックします
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.