【问题标题】:Selecting a range of, or the first x, columns with OleDb使用 OleDb 选择一个范围或前 x 列
【发布时间】:2017-04-10 16:20:43
【问题描述】:

假设我有一个 Excel 文档,其中只有一张工作表。如果 A-G 列中有数据,我可以使用 "SELECT * FROM [" + sheetname + "]" 简单地选择所有这些数据。但是,如果我想指定列怎么办?如果只有少数列,我会像在 SQL 中那样做:SELECT x, y, z FROM...。但是,如果我想选择大量特定列,有没有办法批量执行此操作?另外,如果第一个特定列是工作表中的第一列,是否可以简单地选择前 x 列?

我希望在这里显着缩短 T-SQL 字符串。

【问题讨论】:

    标签: c# oledb oledbcommand


    【解决方案1】:

    您可以通过这种方式获取特定的列列表:

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

    如果您的列范围是连续的,这将起作用。它不必从A1 开始,它可以是任何有效的列。 G10000 表示为 A-G 列选择 10K 行。您可以根据工作表的估计大小更改该数字。

    如果您的列范围不连续,那么您需要在SELECT 子句中指定列列表,例如:SELECT A1, C1 FROM...。尝试AA1,因为据我记得有人报告说简单地指定没有行号的 A 对他们不起作用,但我不能 100% 确定这一点,需要确认。

    这个answer 有一些额外的信息。

    HTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多