Excel SQL запрос, как указать номер столбца, а не имя - PullRequest
0 голосов
/ 30 мая 2020

Я пытаюсь запросить и отфильтровать OleDataTable в C#, а не VBA внутри Excel.

string strSQL = "SELECT * FROM [Sheet1$] WHERE [Columns1$] is not null";  // to filter out any empty values, works if used column name like [UserInfo].
OleDbCommand cmd = new OleDbCommand(strSQL, connExcel);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(da);
dtData = new DataTable();
DataSet dtDataT = new DataSet();
dtData.Locale = System.Globalization.CultureInfo.InvariantCulture;
string FilePath = copyfile.ToString();
da.Fill(dtData);

вместо [Columns1$] Я попробовал Columns(1), Columns(A), не удалось.

1 Ответ

0 голосов
/ 30 мая 2020

Вам необходимо указать HDR = NO в строке подключения, после чего имена столбцов будут автоматически присвоены как F1, F2, et c.

https://www.connectionstrings.com/excel/

...