首页 文章

新的Google Spreadsheets发布限制

提问于
浏览
40

我正在测试新的Google Spreadsheets,因为我确实需要一个新功能:200张限制已被取消(更多信息在这里:https://support.google.com/drive/answer/3541068) .

但是,我无法像旧版本那样将电子表格发布到CSV . 我转到“文件”>“发布到网络”,没有更多选项可以发布“所有工作表”或某些工作表,也无法指定要发布到CSV等的单元格范围 .

已发布的'Unsupported Features'文档中未提及此限制:https://support.google.com/drive/answer/3543688

是否有其他方式可以启用或实际上它已被排除在新版本之外?

我的用例是:我们将Bigquery结果检索到电子表格中,我们使用“自动发布更新”功能自动将工作表发布为CSV,然后生成CSV URL,将其放入读取CSV URL的图表工具中以生成视觉效果 .

有谁知道如何做到这一点?

10 回答

  • 56

    新的Google电子表格使用不同的网址(只需复制您的 <KEY> ):

    • 新表: https://docs.google.com/spreadsheets/d/<KEY>/pubhtml

    • CSV文件: https://docs.google.com/spreadsheets/d/<KEY>/export?gid=<GUID>&format=csv

    电子表格的GUID与标签号有关 .

    /!\您必须使用 Anyone with the link 设置共享文档 .

  • 1

    这是解决方案,只需这样写:

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

    我知道将KEY写两次很奇怪,但它完美无缺 . 来自工作的队友通过在Google Docs中打开excel文件,然后将文件 - >下载为 - >逗号分隔值来发现这一点 . 然后,在浏览器的下载部分显示一个指向CSV文件的链接,如下所示:https://docs.google.com/spreadsheets/d/<KEY>/export?format=csv&id=<KEY>&gid=<SOME NUMBER>但它不能以这种格式工作,我的朋友所做的就是删除"&gid=<SOME NUMBER>"并且它有效!希望它能帮到每个人 .

  • 2

    它不会帮助每个人,但我已经制作了一个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;
    
  • 1

    如果您为电子表格启用“任何具有链接共享的人”,则可以通过以下方法获取HTML,CSV,XML,JSON格式的单元格或列范围(或任何您的感觉)的简单方法:

    https://docs.google.com/spreadsheet/tq?key=YOUR-KEY&gid=1&tq=select%20A,%20B&tqx=reqId:1;out:html;%20responseHandler:webQuery

    这方面的缺点是您的文档仍然可以通过公共链接完全获得,但如果您想导出/导入数据说Excel,这是一个完美的方式 .

  • 25

    将Google电子表格下载为CSV的正确网址为:

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

    这是另一个临时的非PHP解决方法:

    • 转到现有的新Google工作表

    • 转到"File -> New -> Spreadsheet"

    • 在"File -> Publish to the web..."下现在可以选择发布csv版本

    我相信这实际上是创建一个旧的Google表格,但出于我的目的(将谷歌表格数据从客户端或我自己导入R进行统计分析),它一直有效,直到他们希望更新此功能 .

    我也在Google网上论坛中发布了此论坛,请在此处找到:

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

  • 1

    这个新功能似乎已经消失了 . 我没有看到任何发布csv / tsv版本的选项 . 我可以通过导出下载tsv / csv,但只有链接的其他人无法使用它(它将它们重定向到谷歌文档登录表单) .

  • 6

    我找到了修复!所以我发现在此更改之前的旧电子表格仍然只允许发布某些工作表 . 所以我制作了一份旧电子表格的副本,清除了数据,将我当前的信息复制并粘贴到其中,现在我很乐意只发布一张大型电子表格 . 好极了

  • 6

    我能够对结果实现查询,请参阅此表

    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 Map 上绘制它 .

  • 3

    目前的答案不再适用 . 以下对我有用:

相关问题