没有数据或模式的Excel表格列

我试图加载一个表的行到一个types的集合。 我熟悉依赖获取行数据到string数组的“BuildList”样本。 但是,如果用户插入列或重新排列表中的列位置,这不是非常可靠的。 所以我想要得到一个列表和它们在表中的顺序位置。

做这个的最好方式是什么? /行调用不返回列名称和/列是好的,但它也带回所有列的所有数据。 有没有办法让列返回,但没有数据或其他调用来描述表模式(虽然我不希望获得数据types)。

更新我从这里使用示例应用程序: https : //github.com/microsoftgraph/aspnet-donations-rest-sample/blob/master/Microsoft-Graph-ASPNET-Excel-Donations/ExcelAPIHelper.cs 。 具体来说,BuildList方法使用硬编码的string引用(第108-112行)。 这是非常脆弱的,如果用户重新排列excel文件中的列,或者插入一个额外的列,将会中断。

我想从没有数据的表中获得列的列表。 List Columns方法(即table('MyTable')/ columns)也返回每列的所有数据值)。 请参阅参考: https : //developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/table_list_columns 。 )我希望更清楚。

我发现你可以使用OData查询参数,只需要用$ select = name,index来取回列的名字和索引

https://graph.microsoft.com/beta/drives/omitted/items/omitted/workbook/worksheets('Sheet2')/tables('Table2')/Columns?$select=name,index 

和由此产生的JSON

 { "@odata.context": "https://graph.microsoft.com/beta/$metadata#drives('omitted')/items('omitted')/workbook/worksheets('Sheet2')/tables('Table2')/columns(name)", "value": [ { "@odata.id": "/drives('omitted')/items('omitted')/workbook/worksheets(%27%7B00000000-0001-0000-0100-000000000000%7D%27)/tables(%272%27)/columns(%279%27)", "id": "9", "name": "Date" }, { "@odata.id": "/drives('omitted')/items('omitted')/workbook/worksheets(%27%7B00000000-0001-0000-0100-000000000000%7D%27)/tables(%272%27)/columns(%2710%27)", "id": "10", "name": "Time" }, { "@odata.id": "/drives('omitted')/items('omitted')/workbook/worksheets(%27%7B00000000-0001-0000-0100-000000000000%7D%27)/tables(%272%27)/columns(%2711%27)", "id": "11", "name": "Rink" } }