Вставить таблицу Google в документ Google
Можно ли встраивать электронную таблицу Google в документ Google? Microsoft Excel и Microsoft Word? Как насчет диаграммы из таблицы?
5 ответов
С сегодняшнего дня (2016-05-20) Google начинает развертывать возможность встраивания диаграммы из электронной таблицы Google в документ Google. На этом этапе два из моих 3 учетных записей Google делают этот параметр доступным в меню Insert
с новым подменю Insert→Chart
под Insert→Drawing…
.
Когда вы вставляете такие диаграммы, они остаются связанными с исходной электронной таблицей. Если все, что вам нужно, это табличные данные, есть тип таблицы, который можно использовать для представления ваших данных в виде простой таблицы.
На этом этапе существуют некоторые ограничения (например, размер диаграммы), и диаграмма должна существовать в электронной таблице, прежде чем вы сможете ее вставить, но это происходит в правильном направлении -
Чтобы вставить таблицу или таблицу, используйте Добавить таблицу из Google Таблиц скопировать вставки из Таблиц в Документы и выбрать связанный вариант.
Диаграмма не обновлена в реальном времени, если вы измените исходную таблицу во время открытия документа, однако документ обнаружит изменения и предоставит вам кнопку Обновить встроенную таблицу, чтобы отразить последние изменения в источнике.
AFAIK, вы можете копировать и вставлять только текст из текстового документа. Электронная таблица вставляется в виде таблицы, но они не связаны: если вы что-то измените в электронной таблице, она не будет отображаться в текстовом документе.
Конечно, я был бы абсолютно рад оказаться ошибочным!
Вот решение на основе скриптов, которое позволяет вставлять таблицу с содержимым из заданного диапазона в пределах данной таблицы. Я не пытался найти способ синхронизации данных в режиме реального времени, поскольку он не казался практичным, учитывая потенциально большой объем данных, который нужно было бы перенести при каждом редактировании в электронную таблицу. Вместо этого сценарий добавляет в документ пользовательский пункт меню «Обновить данные».
Сценарий должен быть привязан к документу (т. е. создан с помощью Tools> Редактор сценариев в меню документа). 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());
}
Технические примечания
-
Также можно синхронизировать данные каждый час, в дополнение к ручному. Просто добавьте триггер, основанный на времени, из меню ресурсов редактора сценариев, чтобы он запускал функцию updateData.
-
Можно также адаптировать этот скрипт к привязке к исходной электронной таблице. Это потребует изменений в том, как открывается документ (например, по URL-адресу), но в остальном логика одна и та же.
-
Громоздкая часть скрипта получает дескриптор существующей таблицы в документе. Это требует помещения его в Именованный диапазон. Кроме того, гораздо более целесообразно полностью заменить элемент таблицы, чем помешать записи существующей таблицы. Поскольку Named Range неизменен, он также удаляется вместе с таблицей, которую он содержит, а затем снова создается вместе с новой таблицей.
Альтернативой является использование Сайтов Google или любого другого редактора содержимого, который позволяет встраивать содержимое iframes.
Встраивание электронных таблиц Google на страницу Сайтов Google
- Создайте новый сайт или перейдите на существующий сайт.
- Создайте новую страницу или нажмите «Изменить» на существующей странице.
- Нажмите «Вставить»> Привод> Spreadsheet
- Выберите таблицу
- Задайте параметры
- Нажмите «Сохранить»
Да, вы можете. Скопируйте содержимое листа и вставьте его в свой документ, в правом углу он спросит, хотите ли вы ссылку на электронную таблицу. Если вы это сделаете, после редактирования электронной таблицы вы можете щелкнуть значок обновления в своих документах, чтобы включить изменения в документ.