Origine Excel

L'origine Excel consente di estrarre dati da fogli di lavoro o intervalli di una cartella di lavoro di Microsoft Excel.

Sono disponibili quattro diverse modalità di accesso ai dati per l'estrazione dei dati:

  • Vista o tabella.

  • Vista o tabella specificata in una variabile.

  • Risultato di un'istruzione SQL. La query può essere con parametri.

  • Risultato di un'istruzione SQL archiviata in una variabile.

Nota importanteImportante

In Excel un intervallo o un foglio di lavoro equivale a una vista o tabella. Nell'elenco delle tabelle disponibili degli editor di origine e di destinazione Excel vengono visualizzati i fogli di lavoro (riconoscibili dalla presenza del simbolo $ in fondo al nome del foglio di lavoro, ad esempio Sheet1$) e gli intervalli denominati (riconoscibili dall'assenza del simbolo $, ad esempio MyRange) esistenti. Per ulteriori informazioni, vedere la sezione Considerazioni sull'utilizzo.

Per connettersi a un'origine dei dati l'origine Excel utilizza una gestione connessione Excel che specifica il file di cartella di lavoro da utilizzare. Per ulteriori informazioni, vedere Gestione connessione Excel.

L'origine Excel include un output regolare e un output degli errori.

Considerazioni sull'utilizzo

La gestione connessione Excel utilizza il provider OLE DB Microsoft per Jet 4.0 e il relativo driver ISAM (Indexed Sequential Access Method, metodo di accesso sequenziale indicizzato) di Excel di supporto per stabilire la connessione con le origini dei dati Excel e quindi leggere e scrivere informazioni.

Il comportamento di questo provider e del relativo driver è documentato in molti articoli della Microsoft Knowledge Base e, sebbene tali articoli non siano specifici di Integration Services o del suo predecessore, Data Transformation Services, consentono di ottenere informazioni circa i comportamenti che possono produrre risultati imprevisti. Per informazioni generali sull'utilizzo e sul comportamento del driver per Excel, vedere HOWTO: Utilizzare ADO con dati di Excel da Visual Basic o VBA.

I seguenti comportamenti del provider Jet utilizzato insieme al driver per Excel possono produrre risultati imprevisti durante la lettura da un'origine dei dati Excel.

  • Origini dei dati. L'origine dei dati in una cartella di lavoro di Excel può essere un foglio di lavoro, a cui è necessario aggiungere il simbolo $, ad esempio Sheet1$ o un intervallo denominato, ad esempio MyRange. Nelle istruzioni SQL i nomi dei fogli di lavoro devono essere delimitati (ad esempio, [Sheet1$]) per evitare errori di sintassi dovuti alla presenza del simbolo $. In Generatore query tali delimitatori vengono aggiunti automaticamente. Quando si specifica un foglio di lavoro o un intervallo, il driver legge il blocco di celle contigue che inizia con la prima cella non vuota nell'angolo superiore sinistro del foglio di lavoro o dell'intervallo. Non è pertanto possibile utilizzare origini contenenti righe vuote tra i dati oppure tra il titolo o le righe di intestazione e le righe di dati.

  • Valori mancanti. Per determinare il tipo di dati di ogni colonna, il driver per Excel legge un determinato numero di righe (8 per impostazione predefinita) nell'origine specificata. Se una colonna contiene tipi di dati diversi, soprattutto se sono presenti sia dati numerici che di testo, il driver adotta il tipo di dati a cui corrisponde il maggior numero di elementi e restituisce valori Null per le celle che contengono dati di tipo diverso. In caso di parità, viene adottato il tipo numerico. La maggior parte delle opzioni di formattazione utilizzate nei fogli di lavoro di Excel non influisce sulla determinazione del tipo di dati. È possibile modificare questo comportamento del driver per Excel specificando la Modalità di importazione. Per specificare la Modalità di importazione, aggiungere IMEX=1 al valore di Proprietà estese nella stringa di connessione della gestione connessione Excel nella finestra Proprietà. Per ulteriori informazioni, vedere PRB: I valori di Excel restituiti come NULL che utilizza OpenRecordset DAO.

  • Testo troncato. Se il driver determina che una colonna di Excel contiene dati di tipo text, seleziona il tipo di dati (string o memo), in base al più lungo valore campionato. Se il driver non individua valori contenenti più di 255 caratteri nelle righe campionate, gestirà la colonna come una colonna di stringhe di 255 caratteri, anziché come una colonna con tipo di dati memo. I valori contenenti più di 255 caratteri potrebbero essere pertanto troncati. Per evitare troncamenti durante l'importazione di dati da una colonna di tipo memo, è necessario verificare che almeno una delle righe campionate nella colonna di tipo memo contenga un valore con più di 255 caratteri oppure aumentare il numero delle righe campionate dal driver, in modo da includere una riga di questo tipo. Per aumentare il numero delle righe campionate, è possibile incrementare il valore di TypeGuessRows nella chiave del Registro di sistema HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel. Per ulteriori informazioni, vedere l'articolo relativo a PRB sul trasferimento di dati dall'origine Jet 4.0 LEDB che non si effettua con l'errore di buffer di overflow.

  • Tipi di dati. Il driver per Excel riconosce solo un set limitato di tipi di dati. Tutte le colonne numeriche vengono ad esempio interpretate come valori double (DT_R8) e tutte le colonne di tipo stringa (con tipo di dati diverso da memo) vengono interpretate come stringhe Unicode di 255 caratteri (DT_WSTR). In Integration Services i tipi di dati di Excel vengono mappati come segue:

    • Numero – Numero a virgola mobile e precisione doppia (DT_R8)

    • Valuta - Valuta (DT_CY)

    • Valore booleano - Valore booleano (DT_BOOL)

    • Data/ora - datetime (DT_DATE)

    • Stringa - Stringa Unicode di 255 caratteri (DT_WSTR)

    • Memo - Flusso di testo Unicode (DT_NTEXT)

  • Conversione di tipi di dati e lunghezze. In Integration Services non viene eseguita la conversione implicita dei tipi di dati. Può essere pertanto necessario utilizzare trasformazioni Colonna derivata o Conversione dati per convertire i dati di Excel in modo esplicito prima di caricarli in una destinazione diversa da Excel oppure per convertire dati non di Excel prima di caricarli in una destinazione Excel. In questo caso può essere conveniente creare il pacchetto iniziale utilizzando Importazione/Esportazione guidata SQL Server, che configura automaticamente le conversioni necessarie. Di seguito sono riportati alcuni esempi di tali conversioni:

    • Conversione tra colonne di Excel di tipo stringa Unicode e colonne di tipo stringa non Unicode con tabelle codici specifiche

    • Conversione tra colonne di Excel di tipo stringa di 255 caratteri e colonne di tipo stringa di lunghezze diverse

    • Conversione tra colonne di Excel di tipo numeric a precisione doppia e colonne numeric di altro tipo

Configurazione dell'origine Excel

È possibile impostare le proprietà tramite Progettazione SSIS o a livello di programmazione.

Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor origine Excel, fare clic su uno degli argomenti seguenti:

Nella finestra di dialogo Editor avanzato sono disponibili le proprietà che è possibile impostare a livello di programmazione. Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor avanzato o a livello di programmazione, fare clic su uno degli argomenti seguenti:

Per ulteriori informazioni sulle procedure per l'impostazione delle proprietà, fare clic su uno degli argomenti seguenti:

Per informazioni su come eseguire un ciclo su un gruppo di file di Excel, vedere Procedura: Esecuzione di un ciclo su file e tabelle di Excel utilizzando un contenitore Ciclo Foreach.

Risorse esterne

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per informazioni sui download, gli articoli, gli esempi e i video Microsoft più recenti, nonché sulle soluzioni selezionate dalla community, visitare la pagina Integration Services su MSDN:


Per ricevere notifiche automatiche su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.