Вставить таблицу Google в документ Google


82

Можно ли встроить электронную таблицу Google в документ Google, например, в Microsoft Excel и Microsoft Word? Как насчет диаграммы из электронной таблицы?


1
Вы можете скопировать и вставить диаграмму из ваших электронных таблиц в документ. Не повезло с попыткой встроить саму таблицу. Я отправил это как запрос на добавление функций в Группу Google для документов.
mikeschuld

Ответы:


24

С сегодняшнего дня (2016-05-20) Google начинает внедрять возможность вставлять диаграмму из электронной таблицы Google в документ Google. На данный момент, две из моих 3 учетных записей Google делают эту опцию доступной в Insertменю, с новым Insert→Chartподменю под Insert→Drawing…элементом.

При вставке таких диаграмм они остаются связанными с исходной электронной таблицей. Если вам нужны только табличные данные, есть тип таблицы, которую вы можете использовать для представления своих данных в виде простой таблицы.

На этом этапе существуют некоторые ограничения (например, в отношении размера диаграммы), и диаграмма должна предварительно существовать в электронной таблице, прежде чем вы сможете вставить ее, но это происходит в правильном направлении ...


Чтобы вставить электронную таблицу или таблицу, используйте « Добавить таблицу из Google Sheets », вставив копию из «Листов» в «Документы», и выберите связанный параметр.

Диаграмма не обновляется в режиме реального времени, если вы изменяете исходную электронную таблицу, когда ваш документ открыт, однако документ обнаружит изменения и даст вам кнопку « Обновить» над встроенной электронной таблицей, чтобы отразить последние изменения в источнике.


Означает ли это, что если в электронной таблице используется формула или уравнение, которое автоматически изменяется (например, на основе определенной даты), оно также не будет обновляться?
Эрик Хамфри

Я не проверял это, но я подозреваю, что вы должны открыть электронную таблицу, чтобы обновить диаграмму, а затем согласиться обновить диаграмму в документах, которые ее встраивают. Если вы обнаружите иное, дайте нам знать.
Жан-Рене Бувье

1
Начиная с сегодняшнего дня, можно также вставлять таблицу ; так как ваш ответ принят, вы можете изменить эту новую функцию.

1
Спасибо за информацию повторно. прямое встраивание таблицы. На данном этапе эта функция еще не работает в моем аккаунте Google Apps для работы. Я буду обновлять свой пост, как только я это замечаю.
Жан-Рене Бувье

@ Мишель, я пытался, и это не представляется возможным. Я не вижу ни одной кнопки «Обновить» в таблице, которая была скопирована из файла Sheets.
ADTC

32

AFAIK, вы можете копировать и вставлять только из электронной таблицы в текстовый документ. Электронная таблица вставляется в виде таблицы, но они не связаны между собой: если вы что-то измените в электронной таблице, она не будет отражена в текстовом документе.

Конечно, я бы очень хотел быть неправым!


1
К сожалению, это кажется моим единственным вариантом на данный момент.
Але

1
Посмотрите мой ответ ниже, теперь появилась новая опция, которая делает ее немного более дружественной и обеспечивает динамические обновления.
Жан-Рене Бувье

11

Вот решение на основе сценариев, которое позволяет вставлять таблицу с содержимым из заданного диапазона в заданную электронную таблицу. Я не пытался найти способ синхронизации данных в режиме реального времени, поскольку это не казалось практичным, учитывая потенциально большой объем данных, который должен был бы передаваться при каждом редактировании электронной таблицы. Вместо этого скрипт добавляет пользовательский пункт меню «обновить данные» в документ.

Скрипт должен быть привязан к документу (т. Е. Создан с помощью 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());
}

Технические примечания

  1. Также возможно синхронизировать данные каждый час, в дополнение к ручному. Просто добавьте основанный на времени триггер из меню Ресурсы редактора скриптов, чтобы он запускал функцию updateData.

  2. Можно также адаптировать этот скрипт для привязки к исходной электронной таблице. Это потребует изменений в способе открытия документа (например, по URL), но в остальном логика будет той же.

  3. Громоздкая часть скрипта - получение дескриптора существующей таблицы в документе. Это требует помещения его в именованный диапазон. Кроме того, гораздо более целесообразно полностью заменить элемент таблицы, чем связываться с записями существующей таблицы. Поскольку именованный диапазон является неизменным, он также удаляется вместе с таблицей, которую он содержит, а затем снова создается вместе с новой таблицей.


Работает отлично. Любой способ получить форматирование (в частности, цвета фона ячейки)?
Чеширеков

ПРИМЕЧАНИЕ. «URL-адрес электронной таблицы», очевидно, должен содержать полный URL-адрес, включая /edit#gid=0содержимое в конце.
Чеширеков

Нет способа импортировать форматирование другой таблицы.

Ссылки также не передаются, как и цвета. Есть ли способ изменить этот скрипт, чтобы включить все форматирование? Очень умная работа по решению проблемы вырезанной пасты, сработала как шарм!
unc0nnected

4

Да, ты можешь. Скопируйте содержимое листа и вставьте его в документ, в правом углу он спросит, хотите ли вы дать ссылку на электронную таблицу. Если вы это сделаете, то после редактирования электронной таблицы вы можете щелкнуть значок обновления в ваших документах, чтобы включить изменения в ваш документ.


На начало 2018 года это лучший ответ для части вопроса, касающейся вставки таблицы Google Sheet в Google Doc.
dlukes

И, насколько я могу судить, причина, по которой я нашел эту ветку, состоит в том, что она ограничена 400 ячейками.
Трей

3

Альтернативой является использование Сайтов Google или любого другого редактора контента, который позволяет встраивать контент iframes.

Для вставки электронных таблиц Google на страницу Сайтов Google

  1. Создайте новый сайт или перейдите на существующий сайт.
  2. Создайте новую страницу или нажмите «Изменить» на существующей странице.
  3. Нажмите «Вставка»> «Диск»> «Электронная таблица».
  4. Выберите таблицу
  5. Установите параметры
  6. Нажмите на Сохранить
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.