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

本文关键字:检索 数据 智能 | 更新日期: 2023-09-27 18:33:13

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

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

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

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

执行此操作的唯一方法是使用 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方法中说:

工作表获取表( 长 id, IE可枚举包括)

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

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

这是一个在每张纸中打印单元格数据的示例。

        // 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# SDK 和 API 都支持检索部分或全部工作表数据的功能。您无需将工作表下载为 Excel 文件即可处理工作表中的数据。

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

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