2009-12-11 2 views
1

Я использую oledb для чтения данных из файла excel и сохранения его в наборе данных. My Excel файл содержимое, как выглядит следующим образом:Чтение целых чисел из Excel с использованием oledb

0 0 somestring somestring 
500 200 somestring somestring 

Когда я проверил содержимое моего набора данных, значения столбцов 1 & 2 не хранятся в виде целых чисел, а в качестве значений DateTime.

Как я буду хранить его как целочисленные значения вместо DateTime?

+0

UPDATE: Я искал в сети и нашел это: http://www.dotnet247.com/247reference/msgs/37/187667.aspx. По-видимому, установка IMEX = 1 просто обеспечит применение параметра реестра. Я изменил следующие записи в реестре, и теперь он работает: Hkey_Local_Machine/Программное обеспечение/Microsoft/Jet/4.0/Двигатели/Excel/TypeGuessRows = 0 – KeithDB

ответ

3

Вы пытались добавить IMEX = 1 в строку соединения OLEDB?

+0

Последующий ответ и найденное решение (см. Обновление выше). Тпй. – KeithDB

0

Уверены ли вы, что это номер? Возможны следующие варианты:

  1. Щелкните правой кнопкой мыши столбцы в формате excel и измените формат на текст/пользовательский.
  2. Посмотрите на свойство NamedRange.FormatConditions; изменить формат данных, когда вы читаете его от первенствует, см MSDN
  3. Или попробуйте удалить существующий формат в диапазоне:

, который,

Excel.Worksheet sheet = this.Application.ActiveSheet as Excel.Worksheet; 
Excel.Range range = sheet.get_Range("A1", "A5") as Excel.Range; 

//delete previous validation rules 
range.Validation.Delete(); 
0

Вы можете использовать 3-й компонент партии например , который позволяет получить базовые значения ячеек (с помощью IWorkbook.Worksheets [«MySheet»]. Ячейки [rowIndex, colIndex] .Value) независимо от формата ячейки, или вы можете получить форматированный результат с помощью IRange.Text.

Вы можете увидеть прямые образцы ASP.NET here и загрузить бесплатную пробную версию here.

Отказ от ответственности: Я выиграл SpreadsheetGear ООО

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