2017-04-10 86 views
-1

假設我有一個包含單個表單的Excel文檔。在A-G列中有數據的地方,我可以簡單地使用"SELECT * FROM [" + sheetname + "]"來選擇所有的數據。但是,如果我想指定列呢?如果只有少量的列,我會像在SQL中那樣做:SELECT x, y, z FROM...。但是,如果我想要選擇大量的特定列,是否有辦法批量執行此操作?此外,如果第一個特定列是工作表中的第一列,是否可以簡單地選擇第一個x列數?使用OleDb選擇一個範圍或第一個x列

我期待在這裏顯着縮短T-SQL字符串。

回答

0

你可以得到列的具體名單以這種方式:

cmd = new OleDbCommand("SELECT * FROM [" + sheetname + "$A1:G10000]", conn); 

這將工作,如果你列的範圍是連續的。它不必從A1開始,它可以是任何有效的列。 G10000表示爲列A-G選擇10K行。您可以根據估算的工作表大小更改該數字。

如果列的範圍不連續,則需要指定SELECT子句中的列的列表,例如:SELECT A1, C1 FROM...。試試AA1,因爲據我記得有人報告說,簡單地指定沒有行號的A沒有爲他們工作,但我不是100%確定這一點,需要確認。

這個answer有一些額外的信息。

HTH

相關問題