Condividi tramite


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 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). Integration Services esegue il mapping dei tipi di dati di Excel nel modo seguente:

    • 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)

  • Conversioni del tipo di dati e della lunghezza. Integration Services non converte in modo implicito i 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 numerico a precisione doppia e colonne numeriche di altro tipo

Configurazione dell'origine Excel

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

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 codice. Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor avanzato o a livello di codice, fare clic su uno degli argomenti seguenti:

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

Attività correlate

Contenuto correlato

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

Per informazioni sui download, sugli articoli, sugli esempi e sui video Microsoft più recenti, nonché sulle soluzioni selezionate dalla community, visitare la pagina relativa a Integration Services sul sito MSDN:


Per ricevere notifica automatica su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.