.net 使用GetOleDbSchemaTable读取excel列名时出现问题
在谷歌搜索之后,我发现了如何读取excel列名。虽然示例是在VB.Net中,但我使用的是C#.Net。 我的代码是:.net 使用GetOleDbSchemaTable读取excel列名时出现问题,.net,excel,c#-3.0,.net,Excel,C# 3.0,在谷歌搜索之后,我发现了如何读取excel列名。虽然示例是在VB.Net中,但我使用的是C#.Net。 我的代码是: public DataSet ReadXslToDataset(string fileName,string sheetName) { ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+fileName+";Extended Properti
public DataSet ReadXslToDataset(string fileName,string sheetName)
{
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+fileName+";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
using (objConn = new OleDbConnection(ConnectionString))
{
objConn.Open();
String[] restrection = { null, null, sheetName, null };
dtColumnNames = objConn.GetOleDbSchemaTable (OleDbSchemaGuid.Columns, restrection);
string strColumnName = string.Empty;
if (dtColumnNames != null)
strColumnName = dtColumnNames.Rows[0]["COLUMN_NAME"].ToString();
}
}
但是我发现列字段是空的,因此得到了异常
位置0处没有行。
excel文件看起来像
S.No Issue
1 log4net message pattern not displayed properly in the log file
2 Reading blank rows from Excel while populating into dataset
我已确保传递了正确的文件和工作表名称。位置0处没有行 试一试 很抱歉,我可能有点语法错误-我更喜欢VB.net
if (dtColumnNames != null) {
if(dtColumnNames.Rows.Count > 0){
strColumnName = ColumnNames.Rows[0]["COLUMN_NAME"].ToString
}
}