Извлечь данные CSV из URL в таблицу Google

12

У меня есть сайт, который позволяет аутентифицированным пользователям (читай: внутренним пользователям) загружать определенные данные с сайта в формате CSV, например, http://example.com/activities.csv . Могу ли я создать электронную таблицу Google, которая извлекает данные непосредственно с этого URL?

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

Я просмотрел меню и справку Spreadsheet и не нашел в этом смысла; Мне интересно, если это невозможно, или я просто ищу неправильные вещи.

pjmorse
источник
Почему вы не можете просто разместить эти данные в электронной таблице Google, а затем поделиться ею с ними, пропустив CSV? Я предполагаю, что мой вопрос заключается в том, почему бы не использовать лист Google для извлечения данных вместо их сброса в CSV.
OnenOnlyWalter
Данные данные представляют собой вопросы инвентаризации об использовании веб-сайта, например, список созданных пользователем объектов на сайте для администраторов, своего рода отчет об активности на самом сайте. Если есть способ вставить эти данные непосредственно в электронную таблицу Google, не помещая их в CSV, я бы хотел услышать об этом.
pjmorse
Вы предлагаете использовать что-то вроде github.com/tricycle/gdata_spreadsheet для передачи данных непосредственно в электронную таблицу?
pjmorse
Точно, используя библиотеку gdata, вы можете импортировать данные и записывать их непосредственно в электронную таблицу, однако я не эксперт в этой области, но подумал, что я бы спросил, есть ли какая-то причина, по которой вы избегаете информации gdata.
OnenOnlyWalter
Я не избегаю этого, я просто нашел (до сих пор) проще экспортировать CSV, потому что я не знаком с библиотеками gdata (пока). (Не начинайте меня с библиотеки CSV, с которой я закончил ...) Я посмотрю на плагин gdata и увижу, куда это меня приведет.
pjmorse

Ответы:

21

Опустите эту формулу в первой ячейке таблицы Google:

=importData("http://example.com/activities.csv")

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

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

Зак Харки
источник
но файл печатает некоторые странные данные, как этого избежать?
Мистер Эй Джей
@atjoshi: ячейки с импортированными данными все еще являются результатом функции. редактирование может привести к удалению целых данных. Лучше копировать и вставлять значения только после загрузки, если вам нужно отредактировать / распечатать данные.
Mindwin
@atjoshi "Как избежать распечатки странных данных" - это новый и другой вопрос, но, вероятно, его стоит задать.
Аманда
Отлично, но проблема в том, что он не обновляется автоматически. importData также не позволяет вам ссылаться на функцию NOW (), которую я пытался вставить в параметр GET, чтобы всегда иметь новый URL
Fanky
0

Обновление, чтобы исправить приведенный выше ответ для проблемы, связанной с листами, читающими CSV правильно:

Опустите эту формулу в первой ячейке таблицы Google:

=importData("http://example.com/activities.csv")

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

Если вы используете .csv, вам нужно убедиться, что csv читается как таблица. Для моего использования формулы importdata () я читал .csv, хранящийся на Google Диске. Убедившись в правильности разрешений для общего доступа к файлу .csv, я использую ссылку для загрузки .csv;

https://docs.google.com/uc?export=download&id=...

в отличие от прямой связи;

https://drive.google.com/open?id=...

или

https://drive.google.com/file/d/.../view?usp=sharing
Аласдэйр Дункан
источник