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

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

78 голосов | спросил ale 6 J000000Tuesday10 2010, 18:34:19

5 ответов


23

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

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

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


Чтобы вставить таблицу или таблицу, используйте Добавить таблицу из Google Таблиц скопировать вставки из Таблиц в Документы и выбрать связанный вариант.

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

ответил Jean-Rene Bouvier 20 Mayam16 2016, 11:39:20
32

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

Конечно, я был бы абсолютно рад оказаться ошибочным!

ответил jfoucher 6 J000000Tuesday10 2010, 23:22:02
10

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

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

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

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

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

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

ответил 9 AM00000090000004031 2015, 09:59:40
3

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

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

  1. Создайте новый сайт или перейдите на существующий сайт.
  2. Создайте новую страницу или нажмите «Изменить» на существующей странице.
  3. Нажмите «Вставить»> Привод> Spreadsheet
  4. Выберите таблицу
  5. Задайте параметры
  6. Нажмите «Сохранить»
ответил Rubén 6 AM00000010000001331 2015, 01:28:13
2

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

ответил fossilet 23 SatEurope/Moscow2017-12-23T16:35:27+03:00Europe/Moscow12bEurope/MoscowSat, 23 Dec 2017 16:35:27 +0300 2017, 16:35:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132