1

Google スプレッドシート API を使用してスプレッドシートから情報を取得し、彼に情報を挿入する方法を学んでいます。

Google からいくつかの例を使って基本的なものを手に入れましたが、もう少し高度なことをしたいと思っています。

スプレッドシートに次のような 2 つのリストがあります。

      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

(WebsiteList1列のタイトルまたはWebsiteList2)に基づいて、リストの 1 つを選択したい

これを行うためにこのコードを変更しようとしていますが、うまくいきません (何をすべきかわからない):

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か?

4

1 に答える 1

2

わかりました、しばらくいじった後、列を1つだけ取得する方法を見つけました! これが方法です。

まず、完全な行を取得できるように、ListFeed を使用する必要があります。ListFeed は、スプレッドシートの行を表すコレクションです。

ListFeed row;

row.elements は、行のセルを表すコレクションです。

したがって、これは1つの列を取得する方法です(質問のスプレッドシートに基づく):

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の取得と接続に関する情報については、こちらを参照してください。

これは私が見つけた 1 つの方法にすぎません。誰かがヘッダーの列ベースを取得する別の方法を知っているかどうか知りたいです。

(私の英語でごめんなさい)

于 2012-11-29T21:02:30.960 に答える