我有一个smartsheet集成,通过该服务我可以通过Web服务从另一个程序获取数据并写入工作表。填充工作表的相关代码如下:
Cell[] cellsA = new Cell[]
{
new Cell.AddCellBuilder(sheet.Columns[0].Id, projectData[i][0].Trim()).Build() //Project ID
,new Cell.AddCellBuilder(sheet.Columns[1].Id, projectData[i][1].Trim()).Build() //Customer
,new Cell.AddCellBuilder(sheet.Columns[2].Id, projectData[i][2].Trim()).Build() //Description
,new Cell.AddCellBuilder(sheet.Columns[3].Id, projectData[i][3].Trim()).Build() //Status
,new Cell.AddCellBuilder(sheet.Columns[4].Id, startDate).SetStrict(false).Build() //StartDate
,new Cell.AddCellBuilder(sheet.Columns[5].Id, endDate).SetStrict(false).Build() //EndDate
,new Cell.AddCellBuilder(sheet.Columns[6].Id, projectData[i][6].Trim()).Build() //Project Manager
};
// Specify contents of first row.
Row rowA = new Row.AddRowBuilder(null, true, null, null, null).SetCells(cellsA).Build();
我的问题是,而不是使用
sheet.Columns[0].Id
是否可以使用列名来标识特定的列而不是索引?原因是如果用户移动或重新排列列,则将导致错误(日期格式等)。
谢谢...
答案 0 :(得分:0)
您不能以编程方式通过名称引用列(即使您可以,也可能不希望使用-因为名称可能会发生变化,就像位置一样),但是您可以以编程方式通过ID引用列(永远不会更改,即使该列已移动或重命名也是如此。