2016-05-13 95 views
0

我想用sql查詢excel文檔。我想用c#和ado來執行查詢。我不想在服務器上安裝Office。有沒有辦法做到這一點?如何使用sql查詢excel文檔

+0

使用csv而不是excel文件。 Mysql和sqlserver都可以使用csv文件並讀取數據。 – Nived

+0

@Nived我編輯了這個問題 – Luke101

+0

你可以從字節數組中創建一個dataTable(http://stackoverflow.com/questions/1300043/convert-a-byte-array-into-datatable)並查詢它嗎? –

回答

1

你可以使用一個OLEDB連接訪問您的Excel電子表格,這裏是用數據表

string connString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0}; Extended Properties=Excel 12.0;", "myDocument.xlsx"); 

OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM MyTable", connString); 

DataSet ds = new DataSet(); 
adapter.Fill(ds, "TheData"); 
DataTable theTable = ds.Tables["TheData"]; 

一旦你做到了這一點,你可以像

theTable.Rows[indexOfRow].ItemArray[indexOfItem] //The items are stored as objects 

這個具體的例子訪問值的示例是.xlsx文件

+0

嗨,謝謝你的回答。有沒有辦法做到這一點,而不將文件保存到磁盤?也許,查詢在內存中加載的excel。 – Luke101

+0

@盧克101關心擴大,也許舉個例子? :) –

+0

在連接它有「myDocument.xlsx」。這意味着我必須先將文件保存到磁盤。我有一個excel文件的字節數組。有沒有辦法查詢字節數組呢?沒有將excel文件保存到磁盤。 – Luke101