2017-04-03 14 views
0

我想將表格的行加載到類型化的集合中。我熟悉依賴獲取行數據到字符串數組的「BuildList」樣本。但是,如果用戶插入列或重新排列列中的列位置,這不是非常可靠。所以我想要得到一個列表和它們在表格中的序號位置。沒有數據的Excel表格列或模式

這樣做的最好方法是什麼?/Rows調用不會返回列名稱,並且/ Columns很好,但它也會返回所有列的所有數據。有沒有辦法讓列返回,但沒有數據或其他調用來描述表模式(儘管我不希望獲取數據類型)。

更新 我正在使用這裏的示例應用程序:https://github.com/microsoftgraph/aspnet-donations-rest-sample/blob/master/Microsoft-Graph-ASPNET-Excel-Donations/ExcelAPIHelper.cs。具體來說,BuildList方法使用硬編碼的字符串引用(第108-112行)。這非常脆弱,如果用戶重新排列excel文件中的列或插入額外的列,將會中斷。

我想從沒有數據的表中獲取列的列表。 List Columns方法(即table('MyTable')/ columns)也返回每列的所有數據值)。見參考文獻:https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/table_list_columns。 )我希望更清楚。

+0

能否請您具體談談你想要做什麼,你都進行了到現在爲止的步驟?例如,「/行呼叫」是指什麼?這也有助於添加您嘗試的代碼以及使用該代碼獲得的結果。 – jrook

+0

請參閱更新。 –

回答

1

我發現你可以使用OData查詢參數,只需將$ select = name,索引號爲的列的名稱和索引撤回。

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" 
    } 
} 
相關問題