Импорт Excel с 2000 столбцами

Я использовал OleDb для импорта файла Excel, который имеет 2000 столбцов. Поэтому, используя этот кусок кода, я могу иметь только 255 столбцов в моем DataTable. Мне нужен другой способ или, если возможно, этот способ получить 2000 столбцов в моем DataTable.

DataTable dtExcelRecords = new DataTable(); using (OleDbConnection con = new OleDbConnection(connectionString)) { con.Open(); DataTable dtSheet = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); List<string> listSheet = new List<string>(); foreach (DataRow drSheet in dtSheet.Rows) { if (drSheet["TABLE_NAME"].ToString().Contains("$")) { listSheet.Add(drSheet["TABLE_NAME"].ToString()); } } string workSheetName = listSheet.FirstOrDefault(x => x.Contains(cCommon.sFDDetailsWorkSheetName)); OleDbCommand cmd = new OleDbCommand(string.Format("SELECT * FROM [{0}]", workSheetName.Trim()), con); cmd.CommandType = System.Data.CommandType.Text; OleDbDataAdapter dAdapter = new OleDbDataAdapter(cmd); dAdapter.SelectCommand = cmd; dAdapter.Fill(dtExcelRecords); } 

Использование OleDb для доступа к Excel является возможным способом, но не лучшим. Я предлагаю рассмотреть возможность использования сторонних библиотек для импорта из Excel.

Есть две рекомендации:

  • NPOI , который является .NET-портом POI: Java API для MS-документов
  • ClosedXML , который является оболочкой поверх OpenXML, которая является открытой библиотекой Microsoft для доступа к электронным таблицам Excel

Оба хороши и будут выполнять эту работу. Кроме того, они бесплатны и не требуют установки MS Office на машине.

  • Как добавить значение DataTable в DataSet Использование каждого цикла foreach в ASP.NET C # Webform
  • C # Interop получает последнюю строку с данными из определенного столбца
  • C # Excel не запрашивает вход
  • Ошибка экспорта в Excel Gridview Column с текстовым полем
  • Как добавить новую строку в файл Excel с помощью C # и ClosedXML?
  • Excel: создание раскрывающегося списка в Xml Spreadsheet
  • Максимальное количество процессов excel?
  • Вставка и обновление данных в Excel
  • Как получить столбцы из Excel, сгенерированного с помощью EPPLUS
  • Как создать CellValue для десятичного с форматом (#, ###. ##) в OpenXML
  • Excel Interop получает ширину в пикселях текста внутри ячейки
  • Давайте будем гением компьютера.