sto bisogno di importare un foglio di calcolo Excel nel mio programma e hanno il seguente codice:Jet Engine - 255 carattere di troncamento
string connectionString = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;IMEX=1;HDR=NO;""", MyExcelFile.xls);
command.CommandText = "SELECT * FROM [Sheet1$]";
(nota, il codice di cui sopra non è il codice vero e proprio, ma dovrebbe farvi vedere che cosa Sto facendo)
Sto ricevendo il file importato, solo il problema è che tutte le colonne nel foglio di Excel che hanno più di 255 caratteri vengono troncate.
C'è qualche modo per aggirare questo evento?
Ho letto da qualche parte che se ci si accerta che ci sia una lunga riga di testo nella colonna all'interno delle prime 8 righe, sarà trattata come un campo memo e quindi non troncata ma non sembra funzionare.
Qualche idea?
Graeme
finito per farlo in questo modo - ora aprire il file Excel con C#, salvarlo in formato CSV e poi analizzare questo. Grazie a tutti – Graeme
Questa è la soluzione? Sul serio? Che crock; fogli di calcolo Excel senza valore, inutili. Per un formato così popolare, è impossibile leggere i dati da esso in un'applicazione. Non ci sono API ben conservate, open source e completamente funzionali per la lettura di fogli di calcolo xlsx a partire da oggi, e questi motori JET e ACE sono un tale hack (indovinando i tipi di campo guardando le prime X righe, troncando i campi a 255 caratteri, gli hack del registro necessari per modificare le opzioni, excel richiesto per l'installazione per determinate funzionalità, il file aperto in excel cambia il comportamento, ecc.). Che scherzo! – Triynko
@Triynko: Sono completamente d'accordo, questo è uno scherzo, e purtroppo è uno scherzo per noi sviluppatori :(Questo genere di cose mi fa iniziare a pensare di passare da MS a qualcos'altro, dopo tutto ciò prova che MS non gli importa :( –