在Google Spreadsheet API中添加一个简单的标题行

时间:2012-10-29 15:36:14

标签: c# google-spreadsheet-api

如何通过Google Spreadsheet API在programmaticaly创建的工作表上添加简单的标题行?很难理解他们的doc,它只提到了如何在已经创建的标题行上添加一行。如果首次使用基于单元格的Feed来添加标题行,

// Fetch the cell feed of the worksheet.
  CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink);
  CellFeed cellFeed = service.Query(cellQuery);

  // Iterate through each cell, updating its value if necessary.
  foreach (CellEntry cell in cellFeed.Entries)
  {
    if (cell.Title.Text == "A1")
    {
      cell.InputValue = "name";
      cell.Update();
    }
    else if (cell.Title.Text == "B1")
    {
      cell.InputValue = "age";
      cell.Update();
    }
  }

此代码不能用作cellFeed.Entries为0,因此控件不会进入for循环。   我已经添加了一个包含(4)行和(10)列的工作表。但是,如何首先输入一个简单的标题行(作为列),然后输入其他行(作为这些列中的值)?    我知道已经提出的问题很少,但没有人提出答案,很难理解这个API实现起来有多么复杂?

2 个答案:

答案 0 :(得分:5)

答案是:

        CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink);
        CellFeed cellFeed = _SpService.Query(cellQuery);

        CellEntry cellEntry = new CellEntry(1, 1, "name");
        cellFeed.Insert(cellEntry);
        cellEntry = new CellEntry(1, 2, "age");
        cellFeed.Insert(cellEntry);
        cellEntry = new CellEntry(1, 3, "address");
        cellFeed.Insert(cellEntry);

然后可以根据与上述标题行匹配的文档在下面添加行。

答案 1 :(得分:1)

默认情况下,单元格查询不返回空单元格。 您需要覆盖此设置。

像这样编辑你的代码:

CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink);
cellQuery.ReturnEmpty = ReturnEmptyCells.yes;
CellFeed cellFeed = _SpService.Query(cellQuery);