Можно ли встроить электронную таблицу Google в документ Google, например, в Microsoft Excel и Microsoft Word? Как насчет диаграммы из электронной таблицы?
Можно ли встроить электронную таблицу Google в документ Google, например, в Microsoft Excel и Microsoft Word? Как насчет диаграммы из электронной таблицы?
Ответы:
С сегодняшнего дня (2016-05-20) Google начинает внедрять возможность вставлять диаграмму из электронной таблицы Google в документ Google. На данный момент, две из моих 3 учетных записей Google делают эту опцию доступной в Insert
меню, с новым Insert→Chart
подменю под Insert→Drawing…
элементом.
При вставке таких диаграмм они остаются связанными с исходной электронной таблицей. Если вам нужны только табличные данные, есть тип таблицы, которую вы можете использовать для представления своих данных в виде простой таблицы.
На этом этапе существуют некоторые ограничения (например, в отношении размера диаграммы), и диаграмма должна предварительно существовать в электронной таблице, прежде чем вы сможете вставить ее, но это происходит в правильном направлении ...
Чтобы вставить электронную таблицу или таблицу, используйте « Добавить таблицу из Google Sheets », вставив копию из «Листов» в «Документы», и выберите связанный параметр.
Диаграмма не обновляется в режиме реального времени, если вы изменяете исходную электронную таблицу, когда ваш документ открыт, однако документ обнаружит изменения и даст вам кнопку « Обновить» над встроенной электронной таблицей, чтобы отразить последние изменения в источнике.
AFAIK, вы можете копировать и вставлять только из электронной таблицы в текстовый документ. Электронная таблица вставляется в виде таблицы, но они не связаны между собой: если вы что-то измените в электронной таблице, она не будет отражена в текстовом документе.
Конечно, я бы очень хотел быть неправым!
Вот решение на основе сценариев, которое позволяет вставлять таблицу с содержимым из заданного диапазона в заданную электронную таблицу. Я не пытался найти способ синхронизации данных в режиме реального времени, поскольку это не казалось практичным, учитывая потенциально большой объем данных, который должен был бы передаваться при каждом редактировании электронной таблицы. Вместо этого скрипт добавляет пользовательский пункт меню «обновить данные» в документ.
Скрипт должен быть привязан к документу (т. Е. Создан с помощью Tools> Script Editor в меню документа). 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), но в остальном логика будет той же.
Громоздкая часть скрипта - получение дескриптора существующей таблицы в документе. Это требует помещения его в именованный диапазон. Кроме того, гораздо более целесообразно полностью заменить элемент таблицы, чем связываться с записями существующей таблицы. Поскольку именованный диапазон является неизменным, он также удаляется вместе с таблицей, которую он содержит, а затем снова создается вместе с новой таблицей.
/edit#gid=0
содержимое в конце.
Да, ты можешь. Скопируйте содержимое листа и вставьте его в документ, в правом углу он спросит, хотите ли вы дать ссылку на электронную таблицу. Если вы это сделаете, то после редактирования электронной таблицы вы можете щелкнуть значок обновления в ваших документах, чтобы включить изменения в ваш документ.
Альтернативой является использование Сайтов Google или любого другого редактора контента, который позволяет встраивать контент iframes.
Для вставки электронных таблиц Google на страницу Сайтов Google