Выбор диапазона или первых x столбцов с помощью OleDb

Предположим, у меня есть документ Excel с одним листом. Там, где есть данные в столбцах A-G, я могу выбрать их все, просто используя "SELECT * FROM [" + sheetname + "]". Однако что, если я хочу указать столбцы? Если бы было только небольшое количество столбцов, я бы сделал то же самое, что и в SQL: SELECT x, y, z FROM.... Однако, если я хочу выбрать большое количество конкретных столбцов, есть ли способ сделать это массово? Кроме того, если первый конкретный столбец является первым столбцом на листе, можно ли просто выбрать первое количество столбцов x?

Я хочу значительно сократить здесь строку T-SQL.


person Wolfish    schedule 10.04.2017    source источник


Ответы (1)


вы можете получить конкретный список столбцов следующим образом:

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

Это будет работать, если ваш диапазон столбцов непрерывен. Он не обязательно должен начинаться с A1, это может быть любой допустимый столбец. G10000 означает выбор 10 тыс. строк для столбцов A-G. Вы можете изменить это число в зависимости от предполагаемого размера вашего листа.

Если ваш диапазон столбцов не является непрерывным, вам необходимо указать список столбцов в предложении SELECT, например: SELECT A1, C1 FROM... . Попробуйте и A, и A1, потому что, насколько я помню, кто-то сообщил, что простое указание A без номера строки для них не работает, но я не уверен на 100% в этом, необходимо подтверждение.

Этот ответ содержит дополнительную информацию.

ХТН

person andrews    schedule 12.04.2017