我正在尝试将表的行加载到类型集合中。我熟悉依赖于将行数据转换为字符串数组的“BuildList”示例。但是,如果用户插入列或重新排列表中的列位置,则这不是非常可靠。所以我想得到一个列的列表及其表的序数位置。
最好的方法是什么? / Rows调用不会带回列名,而/列也很好,但它也会带回所有列的所有数据。有没有办法恢复列但没有数据或其他调用来描述表模式(虽然我不希望获得数据类型)。
更新 我正在使用此处的示例应用:https://github.com/microsoftgraph/aspnet-donations-rest-sample/blob/master/Microsoft-Graph-ASPNET-Excel-Donations/ExcelAPIHelper.cs。具体而言,BuildList方法使用硬编码的字符串阵列引用(第108-112行)。这非常脆弱,如果用户重新排列excel文件中的列,或者插入额外的列,则会中断。
我想从没有数据的表中获取列的列表。列列方法(即表('MyTable')/列)也返回每列的所有数据值)。见参考:https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/table_list_columns。我希望这更清楚。
答案 0 :(得分:1)
我发现你可以使用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"
}
}