После некоторого поиска в Google я узнал, как читать имена столбцов Excel Как получить информацию о схеме с помощью GetOleDbSchemaTable и Visual Basic .NET
. Хотя образец находится в VB.Net, я использую C # .net.
Мой код:
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
и я убедился, что передаю правильное имя файла и листа.