2017-04-10 11 views
-1

Excel 시트에 시트가 하나있는 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