Czy można osadzić arkusz kalkulacyjny Google w dokumencie Google à la Microsoft Excel i Microsoft Word? Co powiesz na wykres z arkusza kalkulacyjnego?
Czy można osadzić arkusz kalkulacyjny Google w dokumencie Google à la Microsoft Excel i Microsoft Word? Co powiesz na wykres z arkusza kalkulacyjnego?
Odpowiedzi:
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 Insert
menu z nowym Insert→Chart
podmenu 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.
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ę!
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());
}
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.
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.
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ą.
/edit#gid=0
na końcu.
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.
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