Sematkan Google Spreadsheet di Google Document

82

Mungkinkah menanamkan Google Spreadsheet ke dalam Dokumen Google à la Microsoft Excel dan Microsoft Word? Bagaimana dengan bagan dari Spreadsheet?

bir
sumber
1
Anda dapat menyalin dan menempelkan bagan dari spreadsheet Anda ke dokumen. Namun, tidak ada keberuntungan dengan mencoba menyematkan spreadsheet itu sendiri. Saya telah mengirimkan ini sebagai permintaan fitur pada Google Group untuk dokumen.
mikeschuld

Jawaban:

24

Mulai hari ini (2016-05-20), Google mulai meluncurkan kemampuan untuk menyematkan bagan dari spreadsheet Google ke dalam dokumen Google. Pada titik ini, dua dari 3 akun Google saya membuat opsi tersedia di Insertmenu, dengan Insert→Chartsubmenu baru di bawah Insert→Drawing…item.

Saat Anda memasukkan bagan tersebut, mereka tetap tertaut ke lembar kerja asli. Jika semua yang Anda inginkan adalah data tabular, ada tipe bagan tabel yang bisa Anda gunakan untuk menyajikan data Anda sebagai tabel sederhana.

Ada beberapa batasan pada tahap ini (misalnya mengenai ukuran bagan) dan bagan tersebut harus sudah ada sebelumnya dalam spreadsheet sebelum Anda dapat memasukkannya, tetapi ini berjalan ke arah yang benar ...


Untuk menyisipkan spreadsheet atau tabel, gunakan Tambahkan tabel dari Google Sheets dengan menyalin-paste dari Sheets ke Docs dan pilih opsi yang ditautkan.

Bagan ini tidak diperbarui secara langsung jika Anda memodifikasi spreadsheet sumber saat dokumen Anda dibuka, namun, dokumen akan mendeteksi perubahan dan memberi Anda tombol Pembaruan di atas spreadsheet yang disematkan untuk mencerminkan perubahan terbaru dalam sumber.

Jean-Rene Bouvier
sumber
Apakah ini berarti bahwa jika spreadsheet menggunakan rumus atau persamaan yang secara otomatis berubah (misalnya, berdasarkan tanggal tertentu) juga tidak akan diperbarui?
Erik Humphrey
Saya belum menguji ini, tetapi saya menduga Anda harus membuka spreadsheet Anda untuk menyegarkan bagan Anda dan kemudian menerima untuk memperbarui bagan dalam dokumen yang menyematkannya. Jika Anda menemukan yang sebaliknya, beri tahu kami semua.
Jean-Rene Bouvier
1
Mulai hari ini, orang juga dapat menyematkan tabel ; karena jawaban Anda adalah yang diterima, Anda mungkin ingin mengedit di fitur baru ini.
1
Terima kasih atas informasinya. embedding tabel langsung. Pada tahap ini fitur tersebut sepertinya belum berfungsi di akun Google Apps for work saya. Saya akan memperbarui posting saya segera setelah saya perhatikan.
Jean-Rene Bouvier
@Michelle saya mencoba dan sepertinya tidak mungkin. Saya tidak melihat tombol "Perbarui" di atas meja yang disalin dari file Lembar.
ADTC
32

AFAIK, Anda hanya dapat menyalin dan menempel dari spreadsheet ke dokumen teks. Spreadsheet dimasukkan sebagai tabel, tetapi tidak ditautkan: jika Anda mengubah sesuatu dalam Spreadsheet, spreadsheet tidak akan tercermin dalam dokumen teks.

Tentu saja, saya benar-benar senang dibuktikan salah!

jfoucher
sumber
1
Sayangnya, itu muncul satu-satunya pilihan saya pada saat ini.
ale
1
Lihat jawaban saya di bawah, ada opsi baru sekarang yang menjadikan ini sedikit lebih ramah dan menyediakan pembaruan dinamis.
Jean-Rene Bouvier
11

Berikut ini adalah solusi berbasis skrip yang memungkinkan seseorang untuk memasukkan tabel dengan konten dari rentang tertentu dalam spreadsheet yang diberikan. Saya tidak mencoba menemukan cara untuk menyinkronkan data secara real-time, karena tampaknya tidak praktis mengingat berpotensi volume data yang besar yang harus ditransfer dengan setiap pengeditan ke spreadsheet. Sebagai gantinya, skrip menambahkan item menu kustom "perbarui data" ke dokumen.

Script harus terikat ke dokumen (yaitu, dibuat menggunakan Alat> Editor Skrip dalam menu dokumen). URL spreadsheet, serta lembar dan rentang untuk digunakan, ditentukan dalam skrip. Untuk menanamkan semua data pada lembar, ganti .getRange(rangeName)dengan .getDataRange().

Ketika fungsi updateData dijalankan pertama kali, itu menambahkan tabel di akhir dokumen. Pada proses selanjutnya, ini memperbarui tabel di tempat (yaitu, jika lebih banyak teks ditambahkan setelah tabel, pesanan akan dipertahankan).

Perhatikan bahwa memotong-menempelkan tabel akan merusak proses pembaruan (skrip akan menambahkan tabel baru di akhir) karena salinan yang ditempelkan adalah objek baru. Alih-alih, tempel teks di sekitar tabel.

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());
}

Catatan teknis

  1. Dimungkinkan juga untuk menyinkronkan data setiap jam, selain secara manual. Cukup tambahkan pemicu berbasis waktu dari menu Sumber Daya Script Editor, sehingga menjalankan fungsi updateData.

  2. Anda juga dapat mengadaptasi skrip ini untuk terikat ke spreadsheet sumber sebagai gantinya. Ini akan membutuhkan perubahan dalam cara dokumen dibuka (misalnya, dengan URL), tetapi jika tidak demikian logikanya sama.

  3. Bagian rumit dari skrip adalah mendapatkan pegangan dari tabel yang ada di dokumen. Ini membutuhkan penempatannya dalam Jangkauan Bernama. Juga, jauh lebih bijaksana untuk sepenuhnya mengganti elemen tabel daripada mengacaukan entri tabel yang ada. Karena Kisaran Bernama tidak dapat diubah, ia juga dihapus dengan tabel yang dikandungnya, dan kemudian dibuat lagi, bersama dengan tabel baru.


sumber
Bagus sekali. Adakah cara untuk mendapatkan pemformatan (khususnya warna latar belakang sel)?
cheshirekow
CATATAN: 'URL spreadsheet' tampaknya harus berisi url lengkap termasuk /edit#gid=0hal - hal di bagian akhir.
cheshirekow
Tidak ada cara untuk mengimpor pemformatan spreadsheet lain.
Tautan juga tidak ditransfer, juga warna. Apakah ada cara untuk memodifikasi skrip ini untuk memasukkan semua format? Sangat cerdas mengatasi masalah cut-paste, bekerja seperti pesona!
unc0nected
4

Ya kamu bisa. Salin konten selembar dan tempel di doc Anda, di sudut kanan akan menanyakan apakah Anda ingin menautkan ke spreadsheet. Jika ya, setelah mengedit spreadsheet, Anda dapat mengklik ikon pembaruan di dokumen Anda untuk memasukkan perubahan ke dokumen Anda.

Monitor Ikan
sumber
Pada awal 2018, ini adalah jawaban terbaik untuk bagian pertanyaan tentang memasukkan tabel Google Sheet ke dalam Google Doc.
dlukes
Dan sejauh yang saya tahu, alasan saya menemukan utas ini, apakah terbatas pada 400 sel.
Trey
3

Alternatifnya adalah dengan menggunakan Situs Google, atau editor konten lainnya yang memungkinkan penyisipan konten iframe.

Untuk menanamkan Google spreadsheet di halaman Situs Google

  1. Buat situs baru atau buka situs yang ada.
  2. Buat halaman baru atau klik Edit pada halaman yang ada.
  3. Klik Insert> Drive> Spreadsheet
  4. Pilih spreadsheet
  5. Tetapkan opsi
  6. Klik Simpan
Rubén
sumber