Ограничение публикации электронных таблиц Google

Я тестирую новые таблицы Google, так как есть новая функция, которая мне действительно нужна: лимит в 200 листов был снят (подробнее здесь: https://support.google.com/drive/answer/3541068).

Однако я не могу опубликовать таблицу в CSV, как вы можете в старой версии. Я перехожу в "Файл" > "Опубликовать в Интернете", и нет больше возможностей публиковать "все листы" или определенные листы, и вы не можете указывать диапазоны ячеек для публикации в CSV и т.д.

Это ограничение не упоминается в опубликованной документации "Неподдерживаемые характеристики", найденной по адресу: https://support.google.com/drive/answer/3543688

Есть ли какой-либо другой способ, который активируется или его фактически не оставили в новой версии?

Мой пример использования: мы извлекаем результаты Bigquery в электронные таблицы, мы публикуем листы в виде CSV автоматически, используя функцию "публиковать автоматически при обновлении", которая затем создает URL-адрес CSV, который помещается в инструменты построения диаграмм, которые читают URL-адрес CSV для создания визуальных эффектов.

Кто-нибудь знает, как это сделать?

Ответ 1

В новых таблицах Google используется другой URL-адрес (просто скопируйте <KEY>):

  • Новый лист: https://docs.google.com/spreadsheets/d/<KEY>/pubhtml
  • Файл CSV: https://docs.google.com/spreadsheets/d/<KEY>/export?gid=<GUID>&format=csv

GUID вашей таблицы относится к номеру табуляции.

/!\Вы должны поделиться своим документом с помощью Любой, у кого есть ссылка.

Ответ 2

Вот решение, просто напишите его вот так:

https://docs.google.com/spreadsheets/d/<KEY> /export?format=csv&id=<KEY >

Я знаю, что странно писать KEY дважды, но он отлично работает. Сотрудник по команде обнаружил это, открыв файл Excel в Документах Google, затем Файл → Загрузить как → значения, разделенные запятой. Затем в разделе загрузки браузера появляется ссылка на файл CSV, например: https://docs.google.com/spreadsheets/d/<KEY> /export?format=csv&id=<KEY> &gid=<SOME NUMBER > Но в этом формате это не работает, мой друг сделал удаление "& gid = < NOME NUMBER > ", и это сработало! Надеюсь, это поможет всем.

Ответ 3

Это не поможет всем, но я сделал PHP script для чтения 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;

Ответ 4

Если вы включили "Любой, кто имеет общий доступ к общим ссылкам" для электронной таблицы, вот простой способ получить диапазон ячеек или столбцов (или как вам нравится) экспорта в формате HTML, CSV, XML, JSON по запросу:

https://docs.google.com/spreadsheet/tq?key=YOUR-KEY&gid=1&tq=select%20A,%20B&tqx=reqId: 1; выход: HTML; %20responseHandler: веб-запрос

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

Ответ 5

Вот еще одно временное, не-PHP-решение:

  • Перейти к существующей новой странице google
  • Перейдите в "Файл → Создать → Электронная таблица"
  • В разделе "Файл → Опубликовать в Интернете..." теперь есть возможность опубликовать версию csv

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

Я также разместил это на форуме групп Google, здесь:

https://productforums.google.com/forum/#!topic/docs/An-nZtjaupU

Ответ 6

Правильный URL для загрузки электронной таблицы Google в формате CSV:

https://docs.google.com/spreadsheets/export?id=<ID>&exportFormat=csv

Ответ 7

Эта новая функция исчезла. Я не вижу возможности опубликовать версию csv/tsv. Я могу загрузить tsv/csv с помощью экспорта, но это недоступно для других людей с помощью только ссылки (она перенаправляет их в форму входа в Google Документ).

Ответ 8

Я нашел исправление! Поэтому я обнаружил, что старые таблицы перед этим изменением все еще позволяют публиковать только определенные листы. Поэтому я сделал копию старой таблицы, очистил данные, скопировал и вложил в нее текущую информацию, и теперь я счастливо публикую только один лист моей большой таблицы. Yay

Ответ 9

Мне удалось выполнить запрос к результату, см. эту таблицу

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.

Ответ 10

Текущие ответы больше не работают. Для меня работало следующее: