C# 使用OleDb选择一系列列或第一个x列

C# 使用OleDb选择一系列列或第一个x列,c#,oledb,oledbcommand,C#,Oledb,Oledbcommand,假设我有一个Excel文档,其中只有一张工作表。如果A-G列中有数据,我只需使用“select*FROM[“+sheetname+”]”即可选择所有数据。但是,如果要指定列,该怎么办?如果恰好只有少量的列,我会像在SQL中一样:从…中选择x、y、z。但是,如果我想选择大量特定的列,有没有一种方法可以批量完成?此外,如果第一个特定列是图纸中的第一列,是否可以简单地选择第一个x列数 我希望在这里大大缩短T-SQL字符串 您可以通过以下方式获得特定的列列表: cmd = new OleDbComman

假设我有一个Excel文档,其中只有一张工作表。如果A-G列中有数据,我只需使用
“select*FROM[“+sheetname+”]”
即可选择所有数据。但是,如果要指定列,该怎么办?如果恰好只有少量的列,我会像在SQL中一样:
从…
中选择x、y、z。但是,如果我想选择大量特定的列,有没有一种方法可以批量完成?此外,如果第一个特定列是图纸中的第一列,是否可以简单地选择第一个x列数


我希望在这里大大缩短T-SQL字符串

您可以通过以下方式获得特定的列列表:

cmd = new OleDbCommand("SELECT * FROM [" + sheetname + "$A1:G10000]", conn);
如果列的范围是连续的,这将起作用。它不必从
A1
开始,它可以是任何有效列<代码>G10000
表示为A-G列选择10K行。您可以根据工作表的估计大小更改该数字

如果列的范围不连续,则需要在
SELECT
子句中指定列列表,例如:
selecta1,C1 FROM…
。请同时尝试
A
A1
,因为据我所知,有人报告说,简单地指定A而不指定行号对他们不起作用,但我不能100%确定这一点,需要确认

这有一些额外的信息