Sto scrivendo una libreria C# per leggere in file Excel (sia xls che xlsx) e sto riscontrando un problema.Estrazione dati Excel - Problema con tipo di dati colonna
Esattamente come quello che è stato espresso in this question, se il mio file di Excel ha una colonna che ha valori di stringa, ma ha un valore numerico in prima fila, il provider OLE DB presuppone che colonna sia numerica e restituisce NULL
per la valori in quella colonna che non sono numerici.
Sono consapevole del fatto che, come in the answer provided, posso apportare una modifica al registro, ma poiché si tratta di una libreria che prevedo di utilizzare su molte macchine e non voglio modificare i valori di registro di ogni utente, mi chiedevo se c'è una soluzione migliore.
Forse un provider DB diverso da ACE.OLEDB (e sembra che JET non sia più supportato abbastanza bene da essere considerato)?
Inoltre, poiché questo deve funzionare su XLS/XLSX, opzioni come i lettori EPPlus/XML non funzioneranno per la versione xls.
Il modo in cui ho questo problema attualmente è quello di utilizzare l'interfaccia di Excel COM e un po 'C#, per aprire il file in Excel e ri-salvare come '.csv' file. Ho anche una macro che viene caricata ed eseguita per riordinare le cose ma in questo modo rimuove tutta la formattazione e consente un'importazione più semplice. – AeroX
Grazie, @AeroX, stavo pensando a questo, ma sto cercando di evitare Interop se possibile dal momento che apre dozzine di altre lattine di vermi :) ... Spero che qualcun altro abbia un'altra soluzione, ma grazie così molto per condividere il tuo metodo !! –
Utilizzare invece Sdk OpenXml. –