Ограничение публикации электронных таблиц Google
Я тестирую новые электронные таблицы Google, так как есть новая функция, которая мне действительно нужна: ограничение на 200 листов было снято (подробнее здесь: https://support.google.com/drive/answer/3541068 ).
Однако я не могу опубликовать таблицу в CSV, как вы можете в старой версии. Я перехожу в «Файл»> «Опубликовать в Интернете», и больше нет вариантов публикации «всех листов» или определенных листов, и вы не можете указывать диапазоны ячеек для публикации в CSV и т. Д.
Это ограничение не упоминается в опубликованной документации «Неподдерживаемые характеристики», расположенной по адресу: https://support.google.com/drive/answer/3543688
- Как вы добавляете пользовательский интерфейс внутри ячеек в электронную таблицу google с помощью сценария приложения?
- Укладка нескольких столбцов на один?
Есть ли какой-либо другой способ, который активируется, или его фактически оставили в стороне от новой версии?
Мой вариант использования: мы извлекаем результаты Bigquery в электронные таблицы, мы публикуем листы как CSV автоматически, используя функцию «публиковать автоматически при обновлении», которая затем создает URL-адрес CSV, который помещается в инструменты построения диаграмм, которые читают URL-адрес CSV для создания визуалы.
Кто-нибудь знает как это сделать?
В новых таблицах Google используется другой URL-адрес (просто скопируйте
):
- Новый лист:
https://docs.google.com/spreadsheets/d/
/pubhtml - CSV-файл:
https://docs.google.com/spreadsheets/d/
/export?gid= &format=csv
GUID вашей таблицы относится к номеру табуляции.
/! \ Вы должны поделиться своим документом с помощью Anyone с настройкой ссылки .
Вот решение, просто напишите его вот так:
https://docs.google.com/spreadsheets/d/ < KEY >/ export?format=csv & id= < KEY >
Я знаю, что странно писать KEY дважды, но он отлично работает. Сотрудник по команде обнаружил это, открыв файл Excel в Документах Google, затем Файл -> Загрузить как -> значения, разделенные запятой. Затем в разделе загрузки браузера появится ссылка на файл CSV, например: https://docs.google.com/spreadsheets/d/
Это не поможет всем, но я сделал PHP-скрипт для чтения HTML в массив.
Я добавил конвертацию обратно в CSV в конце. Надеюсь, это поможет некоторым людям, имеющим доступ к PHP.
$html_link = "https://docs.google.com/spreadsheets/d/XXXXXXXXXX/pubhtml"; $local_html = "sheets.html"; $file_contents = file_get_contents($html_link); file_put_contents($local_html,$file_contents); $dom = new DOMDocument(); $html = @$dom->loadHTMLFile($local_html); //Added a @ to hide warnings - you might remove this when testing $dom->preserveWhiteSpace = false; $tables = $dom->getElementsByTagName('table'); $rows = $tables->item(0)->getElementsByTagName('tr'); $cols = $rows->item(0)->getElementsByTagName('td'); //You'll need to edit the (0) to reflect the row that your headers are in. $row_headers = array(); foreach ($cols as $i => $node) { if($i > 0 ) $row_headers[] = $node->textContent; } foreach ($rows as $i => $row){ if($i == 0 ) continue; $cols = $row->getElementsByTagName('td'); $row = array(); foreach ($cols as $j => $node) { $row[$row_headers[$j]] = $node->textContent; } $table[] = $row; } //Convert to csv $csv = ""; foreach($table as $row_index => $row_details){ $comma = false; foreach($row_details as $value){ $value_quotes = str_replace('"', '""', $value); $csv .= ($comma ? "," : "") . ( strpos($value,",")===false ? $value_quotes : '"'.$value_quotes.'"' ); $comma = true; } $csv .= "\r\n"; } //Save to a file and/or output file_put_contents("result.csv",$csv); print $csv;
Если вы включили «Любой, у кого есть общий доступ к ссылкам» для электронной таблицы, вот простой способ получить диапазон ячеек или столбцов (или, что вам нравится), экспортировать в формате HTML, CSV, XML, JSON по запросу:
- Для ссылки на язык запроса чтения tq .
- Для ссылки формата запроса чтения tqx .
Недостатком этого является то, что ваш документ все еще доступен в полной мере через общедоступную ссылку, но если вы хотите экспортировать / импортировать данные, чтобы сказать Excel, это идеальный способ.
Правильный URL для загрузки электронной таблицы Google в формате CSV:
https://docs.google.com/spreadsheets/export?id=&exportFormat=csv
Вот еще одно временное, не-PHP-решение:
- Перейдите к существующей новой странице google
- Перейдите в «Файл -> Создать -> Электронная таблица»
- В разделе «Файл -> Опубликовать в Интернете …» теперь есть возможность опубликовать версию csv
Я считаю, что это фактически создает старый лист Google, но для моих целей (импорт данных листа Google с клиентов или меня в R для статистического анализа) он работает, пока они, надеюсь, не обновят эту функцию.
Я также разместил это на форуме групп Google, пожалуйста, здесь:
https://productforums.google.com/forum/#!topic/docs/An-nZtjaupU
Эта новая функция, похоже, исчезла. Я не вижу возможности опубликовать версию csv / tsv. Я могу загрузить tsv / csv с помощью экспорта, но это недоступно для других людей с помощью только ссылки (она перенаправляет их в форму входа в google docs).
Я нашел исправление! Поэтому я обнаружил, что старые таблицы перед этим изменением все еще позволяют публиковать только определенные листы. Поэтому я сделал копию старой таблицы, очистил данные, скопировал и вложил в нее текущую информацию, и теперь я счастливо публикую только один лист моей большой таблицы. ура
Я смог выполнить запрос к результату, см. Эту таблицу
https://docs.google.com/spreadsheets/d/1LhGp12rwqosRHl-_N_N8eTjTwfFsHHIBHUFMMyhLaaY/gviz/tq?tq=select+A,B,I,J,K+where+B%3E=4.5&pli=1
электронная таблица извлекает данные из землетрясения, но я просто хочу выбрать землетрясения MAG 4.5+, поэтому он делает запрос и столбцы, просто проблема:
Я не могу разобрать результат, я пытался декодировать как json, но не смог его разобрать. Я хотел бы показать это как HTML или CSV или как разбирать это? например, чтобы иметь возможность отображать его на карте Google.
Текущие ответы больше не работают. Для меня работало следующее:
- Сделайте Файл -> «Опубликовать в Интернете» и выберите «начать публикацию» и формат. Я выбираю текст (который является TSV)
- Теперь просто скопируйте URL-адрес, который будет похож на https://docs.google.com/spreadsheet/pub?key=YOUR_KEY&single=true&gid=0&output=txt