尝试从工作表中的特定列获取所有单元格值(使用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);
}
答案 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