假设我有一个Excel文档,其中包含一个工作表。如果A-G列中有数据,我只需使用"SELECT * FROM [" + sheetname + "]"
即可选择所有数据。但是,如果我想指定列怎么办?如果恰好只有少量列,我会像在SQL中那样做:SELECT x, y, z FROM...
。但是,如果我想选择大量特定列,是否可以批量执行此操作?另外,如果第一个特定列是工作表中的第一列,是否可以简单地选择前x个列?
我希望在这里大大缩短T-SQL字符串。
答案 0 :(得分:0)
您可以通过以下方式获取列的具体列表:
cmd = new OleDbCommand("SELECT * FROM [" + sheetname + "$A1:G10000]", conn);
如果您的列范围是连续的,这将有效。它不必从A1
开始,它可以是任何有效列。 G10000
表示为列A-G选择10K行。您可以根据工作表的估计大小更改该数字。
如果您的列范围不连续,则需要在SELECT
子句中指定列的列表,例如:SELECT A1, C1 FROM...
。同时尝试A
和A1
,因为据我记得有人报告说只是指定一个没有行号的A对他们不起作用但是我不是100%肯定这个,需要确认
此answer还有一些其他信息。
HTH