2016-06-28 5 views
0

Я импортирование листа первенствовать через MVC веб-сайт, используя Linq заявление, как показано нижеExcel Импорт: Данные не считываются, если столбец имеет различные форматы данных в MVC C# с помощью LINQ

var members = (from memRec in excelFile.Worksheet(sheetName) 
       where memRec["FIRST_NAME"] != null 
       select memRec).ToList(); 
foreach (var member in members) 
{ 
//save data 
} 

Проблемы здесь пусть говорят конкретный столбец «Дата рождения» для первых 2 столбцов, формат ячейки - "DATE" and display as dd/MM/yyyy, а третий столбец - формат ячейки "Text" and display as dd/MM/yyyy. Превосходный вариант будет рассматриваться как значение для третьего столбца из-за несоответствия формата.

Есть ли способ решить эту проблему.

ответ

0

Попробуйте объявить объект и использовать предопределенные типы данных, например:

var q = from memRec in excelFile.Worksheet(sheetName) 
     where memRec["FIRST_NAME"] != null 
     select new Person() 
     { 
      Date = (DateTime)memRec [“Date”], 
      FirstName= (string)memRec [“FirstName”], 
      Age= (int)memRec [“Age”], 
     }; 
+0

он будет импортировать все строки из листа к д? – Sachu

+0

Почему бы и нет? Я думаю, что он должен работать как обычный linq ... –

0

Я нашел решение.

В нашем сервере Office 2010.

Изменить запись реестра, как показано ниже

  1. В среде Windows, выберите Пуск ► Выполнить и введите REGEDIT для отображения редактора реестра.
  2. В дереве реестра выберите HKEY_LOCAL_MACHINE ► Программное обеспечение ► Microsoft ► Офис ► 12.0 ► Механизм подключения к подключению ► Двигатели.
  3. Дважды щелкните узел Excel.
  4. На правой панели дважды щелкните запись TypeGuessRows.
  5. Измените значения с 8 на 0.
  6. Нажмите OK.
  7. Выберите «Файл» ► «Выход», чтобы выйти из окна редактора реестра.

Теперь первенствовать привычка угадывать строки типа данных, так как мы изменили значение от 8 до 0.

 Смежные вопросы

  • Нет связанных вопросов^_^