【发布时间】: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 现在的现代方式是什么?谢谢。