Używam OleDB do odczytu pliku Excel. Jedna z kolumn ma format "Wspólny" i zawiera oba ciągi z literami i wartościami składającymi się tylko z liczb. Wartości łańcuchowe są pobierane bez problemu, ale czyste wartości numeryczne są pobierane jako DBNull
.DBNull w niepustej komórce podczas odczytu pliku Excel przez OleDB
Jak rozwiązać?
używam następujący ciąg połączenia, aby otworzyć Excel 2003 plików (xls):
"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\\file.xls;
Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\""
Dodałem 'IMEX = 1', aby wymusić tryb tekstowy (muszę pobrać te komórki jako tekstowe, a nie numeryczne), ale to nie pomogło. Niemożliwe jest ponowne wprowadzenie wartości w trybie tekstowym, ponieważ istnieje wiele z nich. Czy można to jakoś zautomatyzować? – flashnik
Co się stanie, jeśli skorzystasz z tej sugestii użycia zapytania zamiast bezpośredniej nazwy tabeli/arkusza? Niewielką wadą jest to, że wszystkie kolumny występują wówczas jako ciągi. http://munishbansal.wordpress.com/2009/12/15/importing-data-from-excel-having-mixed-data-types-in-a-column-ssis/ – jdot