Osadź arkusz kalkulacyjny Google w dokumencie Google

82

Czy można osadzić arkusz kalkulacyjny Google w dokumencie Google à la Microsoft Excel i Microsoft Word? Co powiesz na wykres z arkusza kalkulacyjnego?

ale
źródło
1
Możesz skopiować i wkleić wykres z arkuszy kalkulacyjnych do dokumentu. Nie powiodło się jednak próba osadzenia samego arkusza kalkulacyjnego. Przesłałem to jako prośbę o udostępnienie dokumentów w Grupie dyskusyjnej Google.
mikeschuld

Odpowiedzi:

24

Od dziś (2016-05-20) Google zaczyna wdrażać możliwość osadzania wykresu z arkusza kalkulacyjnego Google w dokumencie Google. W tym momencie dwa z moich 3 kont Google udostępniają tę opcję w Insertmenu z nowym Insert→Chartpodmenu pod Insert→Drawing…pozycją.

Po wstawieniu takich wykresów pozostają one połączone z oryginalnym arkuszem kalkulacyjnym. Jeśli wszystko, czego potrzebujesz, to dane tabelaryczne, istnieje typ wykresu tabelarycznego, którego możesz użyć do przedstawienia swoich danych jako prostej tabeli.

Na tym etapie istnieją pewne ograniczenia (np. Dotyczące wielkości wykresu) i zanim będzie można go wstawić, musi on istnieć w arkuszu kalkulacyjnym, ale idzie to w dobrym kierunku…


Aby wstawić arkusz kalkulacyjny lub tabelę, użyj opcji Dodaj tabelę z Arkuszy Google , kopiując-wklejając ją z Arkuszy do Dokumentów i wybierając opcję połączoną.

Wykres nie jest aktualizowany na żywo, jeśli zmodyfikujesz źródłowy arkusz kalkulacyjny podczas otwierania dokumentu, jednak dokument wykryje zmiany i wyświetli przycisk Aktualizuj nad osadzonym arkuszem kalkulacyjnym, aby odzwierciedlić najnowsze zmiany w źródle.

Jean-Rene Bouvier
źródło
Czy to oznacza, że ​​jeśli arkusz kalkulacyjny używa formuły lub równania, które automatycznie się zmienia (np. W oparciu o określoną datę), to również nie zostanie zaktualizowany?
Erik Humphrey,
Nie przetestowałem tego, ale podejrzewam, że musisz otworzyć arkusz kalkulacyjny, aby odświeżyć wykres, a następnie zaakceptować aktualizację wykresu w dokumentach, które go osadzają. Jeśli uważasz inaczej, daj nam znać.
Jean-Rene Bouvier
1
Od dzisiaj można również osadzić tabelę ; ponieważ Twoja odpowiedź jest zaakceptowana, możesz chcieć edytować w tej nowej funkcji.
1
Dzięki za informację ponownie. bezpośrednie osadzanie tabeli. Na tym etapie funkcja ta nie działa jeszcze na moim koncie Google Apps for Work. Zaktualizuję swój post, gdy tylko to zauważę.
Jean-Rene Bouvier
@Michelle Próbowałem i nie wydaje się to możliwe. Nie widzę żadnego przycisku „Aktualizuj” w tabeli skopiowanej z pliku Arkuszy.
ADTC
32

AFAIK, możesz tylko kopiować i wklejać z arkusza kalkulacyjnego do dokumentu tekstowego. Arkusz kalkulacyjny jest wstawiany jako tabela, ale nie są one połączone: jeśli zmienisz coś w arkuszu kalkulacyjnym, nie zostanie to odzwierciedlone w dokumencie tekstowym.

Oczywiście, absolutnie chciałbym, aby udowodniono, że się mylę!

jfoucher
źródło
1
Niestety, w tym momencie pojawia się moja jedyna opcja.
ale
1
Zobacz moją odpowiedź poniżej, teraz jest nowa opcja, która czyni to nieco bardziej przyjaznym i zapewnia dynamiczne aktualizacje.
Jean-Rene Bouvier,
11

Oto rozwiązanie oparte na skryptach, które pozwala wstawić tabelę z zawartością z danego zakresu w obrębie danego arkusza kalkulacyjnego. Nie próbowałem znaleźć sposobu na synchronizację danych w czasie rzeczywistym, ponieważ nie wydawało się to praktyczne, biorąc pod uwagę potencjalnie dużą ilość danych, które musiałyby być przesyłane przy każdej edycji do arkusza kalkulacyjnego. Zamiast tego skrypt dodaje niestandardowy element menu „aktualizuj dane” do dokumentu.

Skrypt powinien być powiązany z dokumentem (tzn. Utworzony za pomocą Narzędzia> Edytor skryptów w menu dokumentu). Adres URL arkusza kalkulacyjnego, a także arkusz i zakres do użycia są określone w skrypcie. Aby umieścić wszystkie dane na karcie, należy wymienić .getRange(rangeName)z .getDataRange().

Kiedy funkcja updateData jest wykonywana po raz pierwszy, dołącza tabelę na końcu dokumentu. Przy kolejnych uruchomieniach aktualizuje tabelę w miejscu (tzn. Jeśli po tabeli zostanie dodany więcej tekstu, kolejność zostanie zachowana).

Pamiętaj, że wycinanie i wklejanie tabeli przerwałoby proces aktualizacji (skrypt dodawałby nową tabelę na końcu), ponieważ wklejona kopia jest nowym obiektem. Zamiast tego wytnij i wklej tekst wokół stołu.

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

Uwagi techniczne

  1. Możliwe jest również synchronizowanie danych co godzinę, oprócz ręcznego. Wystarczy dodać wyzwalacz czasowy z menu Zasoby edytora skryptów, aby uruchomić funkcję updateData.

  2. Zamiast tego można również dostosować ten skrypt, aby był powiązany ze źródłowym arkuszem kalkulacyjnym. Wymagałoby to zmian w sposobie otwierania dokumentu (np. Według adresu URL), ale poza tym logika jest taka sama.

  3. Uciążliwą częścią skryptu jest uzyskanie obsługi istniejącej tabeli w dokumencie. Wymaga to umieszczenia go w zakresie nazwanym. Ponadto o wiele bardziej celowe jest całkowite zastąpienie elementu tabeli niż bałagan z wpisami istniejącej tabeli. Ponieważ zakres nazwany jest niezmienny, jest on również usuwany z zawartą w nim tabelą, a następnie tworzony ponownie wraz z nową tabelą.


źródło
Działa świetnie. Jakiś sposób uzyskać formatowanie (w szczególności kolory tła komórki)?
cheshirekow
UWAGA: „Adres URL arkusza kalkulacyjnego” powinien najwyraźniej zawierać pełny adres URL, w tym informacje /edit#gid=0na końcu.
cheshirekow
Nie ma możliwości zaimportowania formatowania innego arkusza kalkulacyjnego.
Linki również nie są przenoszone, podobnie jak kolory. Czy istnieje sposób zmodyfikowania tego skryptu, aby obejmował całe formatowanie? Bardzo sprytne obejście problemu wycinania i wklejania, działało jak urok!
unc0nnected
4

Tak, możesz. Skopiuj zawartość arkusza i wklej go do swojego dokumentu, w prawym rogu zapyta, czy chcesz utworzyć link do arkusza kalkulacyjnego. Jeśli to zrobisz, po edycji arkusza kalkulacyjnego możesz kliknąć ikonę aktualizacji w swoich dokumentach, aby uwzględnić zmiany w dokumencie.

Monitor ryb
źródło
Na początku 2018 r. Jest to najlepsza odpowiedź na część pytania dotyczącego wstawiania tabeli Arkuszy Google do Dokumentu Google.
dlukes
I o ile wiem, powód, dla którego znalazłem ten wątek, jest ograniczony do 400 komórek.
Trey
3

Alternatywą jest użycie Witryn Google lub dowolnego innego edytora treści, który umożliwia osadzanie treści iframe.

Aby osadzić arkusze kalkulacyjne Google na stronie Witryn Google

  1. Utwórz nową witrynę lub przejdź do istniejącej witryny.
  2. Utwórz nową stronę lub kliknij Edytuj na istniejącej stronie.
  3. Kliknij Wstaw> Dysk> Arkusz kalkulacyjny
  4. Wybierz arkusz kalkulacyjny
  5. Ustaw opcje
  6. Kliknij Zapisz
Ruben
źródło