特定列的智能表API单元格值

时间:2017-11-30 23:46:41

标签: c# visual-studio smartsheet-api

尝试从工作表中的特定列获取所有单元格值(使用Cell.Displayvalue)。我已经使用GetSheet方法选择工作表中的特定列。我不知道如何遍历此特定列并获取单元格值。我的目标是在C#应用程序的下拉菜单中使用这些值。我迷失在需要制作的列表/对象中以获得我需要的东西。

以下代码:

 // Initialize client and get Token
            SmartsheetClient ss = new SmartsheetBuilder().SetAccessToken("b7y1brxa4rd8gmki6aa6zi6wr").Build();

            // List all sheets
            PaginatedResult<Sheet> sheets = ss.SheetResources.ListSheets(
                null,       //IEnumerable < SheetInclusion > includes
                null,       //PaginationParameters
                null        //Nullable<DateTime> modifiedSince = null
                );

            Console.WriteLine("Found " + sheets.TotalCount + " sheets");

            long sheetId = (long)sheets.Data[1].Id;    //default to first sheet

            long test = 8905499732141956;

            List<long> testList = new List<long>();
            testList.Add(test);

            // Load the entire sheet
            var sheet = ss.SheetResources.GetSheet(
                sheetId,           // long sheetId
                null,                       // IEnumerable<SheetLevelInclusion> includes
                null,                       // IEnumerable<SheetLevelExclusion> excludes
                null,                       // IEnumerable<long> rowIds
                null,                       // IEnumerable<int> rowNumbers
                testList,                       // IEnumerable<long> columnIds
                null,                       // Nullable<long> pageSize 
                null                        // Nullable<long> page
            );
            Console.WriteLine("Loaded " + sheet.Rows.Count + " rows from sheet: " + sheet.Name);
            Console.WriteLine("Loaded " + sheet.Columns.Count + " columns from sheet: " + sheet.Name);

            //PaginatedResult<Column> columns = ss.SheetResources.ColumnResources.ListColumns(sheetId, null, null);
            //Cell[] celltest;

            foreach (Column column in sheet.Columns)
            {
                Console.WriteLine(column.Title + "    Column ID is " + column.Id);



            }

            List<Cell> val = new List<Cell>();
            List<Row> val2 = new List<Row>();


            foreach (Row row in sheet.Rows)
            {
                Console.WriteLine(row);
            }

1 个答案:

答案 0 :(得分:1)

How to read a sheet response中所述,列对象定义列,实际的单元格数据存储在行中。

请参阅示例csharp-read-write-sheet以获取循环工作表行的示例代码,并检查特定列中的单元格值。

SDK源具有更小的样本,可以转储工作表的前几行。 https://github.com/smartsheet-platform/smartsheet-csharp-sdk/blob/master/Sample/Program.cs