将Google表格工作表下载为CSV文件

时间:2015-11-19 21:28:54

标签: .net google-sheets

尝试将已发布的表单文档下载为多个CSV文件时,我只能检索第一个工作表。我宁愿代码是自包含的而不使用Google API。这可能吗?

1 个答案:

答案 0 :(得分:0)

可以,但您需要将文档作为Feed提取,以便收集工作表ID。

$document = "<Google_Sheets_Document_Id>"

$ns = @{n="http://www.w3.org/2005/Atom"}
$feedXml = [xml](Invoke-WebRequest -Uri "https://spreadsheets.google.com/feeds/worksheets/$document/public/full").Content

$entries = Select-Xml -Xml $feedXml -Namespace $ns -XPath "/n:feed/n:entry"
foreach ($e in $entries)
{
    $href = Select-Xml -Xml $e.Node -XPath "n:link[@type='text/csv']/@href" -Namespace $ns
    $query = ([System.Uri]"$($href.Node.Value)").Query.Replace("format", "output")

    $e.Node.title #Sheet title
    "https://docs.google.com/spreadsheets/d/$document/pub$query" #Sheet URL
}

这将下载Atom供稿并从XML文档中检索各个CSV文件的工作表标题和URL。