Google SpreadSheet-按标题选择列

时间:2012-11-27 19:15:16

标签: c# google-sheets google-spreadsheet-api

我正在学习如何使用Google电子表格API从电子表格中获取信息并向他插入信息。

我从谷歌的一些例子中得到了基本的东西,但我想做一些更先进的事情。

我在电子表格中有两个列表,如下所示:

      A                     B    
1| WebsiteList1    |   WebsiteList2
2| www.google.com  |  www.blabla.com
3| www.yahoo.com   |  www.someWebsite.com
4| www.cnn.com     |  www.cantThinkOfAbother.com

我想根据列标题(WebsiteList1WebsiteList2选择列表中的一个

我正在尝试更改此代码来执行此操作,但没有运气(不确定该怎么做):

public void GetAllWebSitesListFromWorkSheet(string spreadsheetName,string colmnTitle)
{
        WorksheetEntry entry = getWorkSheetByTitle(spreadsheetName);

        CellQuery myCellQuery = new CellQuery(entry.CellFeedLink);

        CellFeed cellFeed = service.Query(myCellQuery);

        foreach (CellEntry cell in cellFeed.Entries)
        {
            Console.WriteLine(cell.Value);
        }
    }

我需要在CellQuery对象中进行哪些更改才能获取WebsiteList2下的所有网站?

1 个答案:

答案 0 :(得分:2)

好的,经过一段时间的捣乱,我找到了一种方法只能得到1个colmn! 这是方法。

首先我们需要使用ListFeed,这样我们就可以得到完整的行。  ListFeed是一个代表电子表格中的行的集合。

ListFeed row;

row.elements是一个表示行的单元格的集合。

所以这是获得1个colmn的方法(基于问题中的电子表格):

public void GetWebsitesWithListFeed()
    {


        WorksheetEntry entry = //get your spreadsheet (expmples for this can be found
                              //in google docs api (link in the end of the answer)


        // Define the URL to request the list feed of the worksheet.
        AtomLink listFeedLink = entry.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);

        // Fetch the list feed of the worksheet.
        ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString());

        ListFeed listFeed = service.Query(listQuery);

        // Iterate through each row.
        foreach (ListEntry row in listFeed.Entries)
        {
            //go over each CELL in the row
            foreach (ListEntry.Custom element in row.Elements)
            {   
                //print only the CELLS that there father (xmlName) is "WebsiteList2"
                if (element.XmlName == "WebsiteList2")
                    Console.WriteLine(element.Value);
            }

        }

    }

有关获取 SpreadSheet和连接内容的信息,请 HERE

这只是我发现的一种方式,我想知道somone是否知道一种不同的方式来获得他头上的colmn基础。

(对不起我的英文)