Я хочу получить столбцы заголовка из листа excel, но для некоторых столбцов он показывает null
Я хочу взять заголовочные строки всех имен столбцов из Excel с помощью кода c#
Но это не дает всего заголовка столбца из Excel
Заголовок столбца листа Excel выглядит следующим образом
aa Aa год "31-Mar-2016[фактический]" " 31-Mar-2015 [фактический]"
"31 Марта 2014 Года[Актуально]"
последние 3 столбца содержат в нем десятичные значения данных, но он не показывает последние 3 столбца
в наборе данных
Он не показывает значение последних 3 столбцов заголовка
следующая строка-это из заданной строки кодов, чтобы взять одну за другой строку заголовка
строка columnName = HeaderColumns.Строки[0] [столбец.Имя_столбца].Метод toString();
Что я уже пробовал:
Для этого я создал следующий код
#region protected void ReadHeaderRow(string filePath) { string Fpath = filePath; string connString = string.Empty; if (filePath.EndsWith(".xlsx")) { //2007 Format connString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=No'", filePath); } else { //2003 Format connString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=No'", filePath); } using (OleDbConnection con = new OleDbConnection(connString)) { using (OleDbCommand cmd = new OleDbCommand()) { //Read the First Sheet cmd.Connection = con; con.Open(); DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); con.Close(); string firstSheet = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString(); //Read the Header Row cmd.CommandText = "SELECT top 1 * From [" + firstSheet + "]"; using (OleDbDataAdapter da = new OleDbDataAdapter(cmd)) { DataTable HeaderColumns = new DataTable(); da.SelectCommand = cmd; da.Fill(HeaderColumns); foreach (DataColumn column in HeaderColumns.Columns) { string columnName = HeaderColumns.Rows[0][column.ColumnName].ToString(); } } } } } #endregion