【问题标题】:Excel SQL query how to specify a column number not nameExcel SQL查询如何指定列号而不是名称
【发布时间】:2020-05-29 22:14:29
【问题描述】:

我正在尝试在 C# 中查询和过滤 OleDataTable,而不是 Excel 中的 VBA。

string strSQL = "SELECT * FROM [Sheet1$] WHERE [Columns1$] is not null";  // to filter out any empty values, works if used column name like [UserInfo].
OleDbCommand cmd = new OleDbCommand(strSQL, connExcel);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(da);
dtData = new DataTable();
DataSet dtDataT = new DataSet();
dtData.Locale = System.Globalization.CultureInfo.InvariantCulture;
string FilePath = copyfile.ToString();
da.Fill(dtData);

代替[Columns1$]我试过Columns(1)Columns(A),没有成功。

【问题讨论】:

  • OleDb 不是数据库格式。您使用的是 Access 还是 SQL Server?
  • @jscarle 您可以使用 Microsoft.Jet.OleDb 查询 Excel 文件,但这是一项非常过时的技术。现代方法是使用专门用于读取 Excel 文档的托管库。
  • 糟糕,我看错了。
  • @silkfire 现在的现代方式是什么?谢谢。

标签: c# sql excel


【解决方案1】:

您需要在连接字符串中指定 HDR=NO,之后列名将自动分配为 F1、F2 等。

https://www.connectionstrings.com/excel/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 2022-08-19
    • 1970-01-01
    相关资源
    最近更新 更多