从C#中的智能表中检索行数据

时间:2014-12-04 19:41:37

标签: c# smartsheet-api smartsheet-c#-sdk-v1

我希望能够从C#中的特定列中检索数据行作为列表。因此,如果有一列人物高度,它会列出列表中的那些高度。可能还列出x,y值表示特定日期的苹果数量。

我查看了有关API信息的示例,但无法找到有关如何执行此操作的示例 - 它们主要包括创建文件夹,用户或列出文件夹或工作表或在智能表等上输入信息,但实际上没有数据输出。

以下是我看过的代码: https://github.com/smartsheet-platform/samples/tree/master/c%23 https://github.com/smartsheet-platform/smartsheet-csharp-sdk

但我实际上想把数据作为一个列表拉出来,然后在C#中为最终用户处理它,所以我不想把它放回到智能表中。

这是使用API​​下载文件作为Excel工作表并从那里开始的唯一方法吗?如果可能的话,我真的想跳过这一步吗?

我应该添加我想要使用C#SDK来执行此操作。

我认为我需要输入的具体代码(我认为)是为了获得表单。

// Set the Access Token
Token token = new Token();
token.AccessToken = "INSERT_YOUR_TOKEN_HERE";
long id = "INSERT SHEET ID HERE";


// Use the Smartsheet Builder to create a Smartsheet
SmartsheetClient smartsheet = new SmartsheetBuilder().SetAccessToken(
token.AccessToken).Build();

//Code to get sheet
smartsheet.Sheets().GetSheet(long id, **IEnumerable<ObjectInclusion?includes**).Rows();

这是我不确定他们需要的最后一个参数。它在GetSheet方法中说:

Sheet GetSheet(     长的,     IEnumerable包括 )

以下是ObjectInclusion枚举的链接 - http://smartsheet-platform.github.io/smartsheet-csharp-sdk/html/T_Smartsheet_Api_Models_ObjectInclusion.htm

1 个答案:

答案 0 :(得分:5)

以下是在每张纸上打印单元格数据的示例。

        // Set the Access Token
        Token token = new Token();
        token.AccessToken = "YOUR_TOKEN";

        // Use the Smartsheet Builder to create a Smartsheet
        SmartsheetClient smartsheet = new SmartsheetBuilder().SetAccessToken(token.AccessToken).Build();

        // Gets just a list of sheets (not the actual data in the sheet)
        IList<Sheet> homeSheets = smartsheet.Sheets().ListSheets();
        foreach (Sheet tmpSheet in homeSheets)
        {
            Console.WriteLine("========== New Sheet: " + tmpSheet.Name);
            // Get the sheet with the data
            Sheet sheet = smartsheet.Sheets().GetSheet((long)tmpSheet.ID, new ObjectInclusion[] { ObjectInclusion.DATA, ObjectInclusion.COLUMNS });

            int rowCount = 0;
            foreach (Row tmpRow in sheet.Rows)
            {
                Console.Write(rowCount++ + ": ");
                foreach (Cell tmpCell in tmpRow.Cells)
                {
                    Console.Write(tmpCell.Value + "|");
                }
                Console.WriteLine();
            }
        }

回答其他一些问题:

  

这是使用API​​下载文件作为Excel工作表并从那里开始的唯一方法吗?如果可能的话,我真的想跳过这一步吗?

C# SDKAPI都支持检索部分或全部工作表数据的功能。您不需要将工作表下载为Excel文件,以便处理工作表中的数据。

  

我不确定他们需要什么。它在GetSheet方法中说:Sheet GetSheet(long id,IEnumerable&lt; ObjectInclusion&gt;)

IEnumerable只是一个可迭代的集合。您可以将任何集合用于实现此接口的第二个参数。该集合应包含ObjectInclusion个项目列表。在我的例子中,我使用了一个数组,因为它实现了一个实现IEnumerable的IList