在google电子表格中添加一行

时间:2012-05-09 14:58:45

标签: c# row add google-spreadsheet-api

我正在尝试向Google电子表格添加一行。他们给了一个来源https://developers.google.com/google-apps/spreadsheets/#adding_a_list_row这个来源对我来说不起作用任何人都可以告诉我,请问包含名称“行”的行是否有问题。 “错误11当前上下文中不存在名称'row'”

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Google.GData.Client;
using Google.GData.Spreadsheets;

namespace Google_test3
{
class Program
{
    static void Main(string[] args)
    {
        string USERNAME = "test";
        string PASSWORD = "test";
        SpreadsheetsService service = new SpreadsheetsService("MySpreadsheetIntegration-v1");

        service.setUserCredentials(USERNAME, PASSWORD);



        // Instantiate a SpreadsheetQuery object to retrieve spreadsheets.
        SpreadsheetQuery query = new SpreadsheetQuery();

        // Make a request to the API and get all spreadsheets.
        SpreadsheetFeed feed = service.Query(query);

        if (feed.Entries.Count == 0)
        {
            Console.WriteLine("None");
        }

        // TODO: Choose a spreadsheet more intelligently based on your
        // app's needs.
        SpreadsheetEntry spreadsheet = (SpreadsheetEntry)feed.Entries[0];
        Console.WriteLine(spreadsheet.Title.Text);

        // Get the first worksheet of the first spreadsheet.
        // TODO: Choose a worksheet more intelligently based on your
        // app's needs.
        WorksheetFeed wsFeed = spreadsheet.Worksheets;
        WorksheetEntry worksheet = (WorksheetEntry)wsFeed.Entries[0];

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

        // Fetch the list feed of the worksheet.
        ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString());
        ListFeed listFeed = service.Query(listQuery);
        // Create a local representation of the new row.
        row.Elements.Add(new ListEntry.Custom() { LocalName = "firstname", Value = "Joe" });
        row.Elements.Add(new ListEntry.Custom() { LocalName = "lastname", Value = "Smith" });
        row.Elements.Add(new ListEntry.Custom() { LocalName = "age", Value = "26" });
        row.Elements.Add(new ListEntry.Custom() { LocalName = "height", Value = "176" });

        // Send the new row to the API for insertion.
        service.Insert(listFeed, row);
    }
}
}

2 个答案:

答案 0 :(得分:3)

文档中的示例中缺少一行:

ListEntry row = new ListEntry();
row.Elements.Add(new ListEntry.Custom() { LocalName = "firstname", Value = "Joe" });
row.Elements.Add(new ListEntry.Custom() { LocalName = "lastname", Value = "Smith" });
row.Elements.Add(new ListEntry.Custom() { LocalName = "age", Value = "26" });
row.Elements.Add(new ListEntry.Custom() { LocalName = "height", Value = "176" });

如果切换到Java视图,则可以看到Java版本包含此行。

答案 1 :(得分:2)

Google停止提供这项服务,现在又推出了另一款名为Google.Apis.Sheets.v4服务的服务。

所以上面的代码现在一天都行不通,我已经试过了。

找到适合我的东西。

我写了一篇博客并在那里分享了整个源代码。看看吧。

docker

对于整个源代码,请查看它。 Insert new row to Google Sheet using Google.Apis.Sheets.V4 Services