2017-04-10 81 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

相关问题