Gestione connessione Excel

Si applica a:SQL Server SSIS Integration Runtime in Azure Data Factory

Una gestione connessione Excel consente la connessione di un pacchetto a un file di cartella di lavoro di Microsoft Excel. L'origine e la destinazione Excel disponibili in Microsoft SQL Server Integration Services usano la gestione connessione Excel.

Importante

Per informazioni dettagliate sulla connessione ai file di Excel e sulle limitazioni e i problemi noti per il caricamento di dati da o a file di Excel, vedere Caricare i dati da o in Excel con SQL Server Integration Services (SSIS).

Quando si aggiunge una gestione connessione Excel a un pacchetto, Integration Services crea una gestione connessione che in fase di esecuzione verrà risolta in una connessione Excel, imposta le proprietà della gestione connessione, quindi la aggiunge alla raccolta Connessioni del pacchetto.

La proprietà ConnectionManagerType della gestione connessione viene impostata su EXCEL.

Configurare la gestione connessione Excel

Per configurare la gestione connessione Excel, procedere nel modo seguente:

  • Specificare il percorso del file della cartella di lavoro di Excel.

  • Specificare la versione di Excel utilizzata per creare il file.

  • Indicare se la prima riga nei fogli di lavoro o negli intervalli selezionati contiene i nomi delle colonne.

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

Per altre informazioni sulle proprietà che è possibile impostare in Progettazione SSIS, vedere Editor gestione connessione Excel.

Per informazioni sulla configurazione di una gestione connessione a livello di programmazione, vedere l'articolo relativo a ConnectionManager e Aggiunta di connessioni a livello di programmazione.

Editor gestione connessione Excel

Usare la finestra di dialogo Editor gestione connessione Excel per aggiungere una connessione a un file di cartella di lavoro di Microsoft Excel nuovo o esistente.

Opzioni

Percorso file di Excel
Consente di digitare il percorso e il nome del file di una cartella di lavoro di Excel nuova o esistente.

Sfoglia
Usare la finestra di dialogo Apri per passare alla cartella che contiene il file di Excel o in cui creare il nuovo file.

Versione di Excel
Consente di specificare la versione di Microsoft Excel utilizzata per creare il file.

Nomi di colonna nella prima riga
Consente di specificare se la prima riga di dati del foglio di lavoro selezionato contiene nomi di colonna. Il valore predefinito di questa opzione è True.

Soluzione per importare dati con tipi di dati misti da Excel

Se si usano dati che contengono tipi di dati misti, per impostazione predefinita il driver Excel legge le prime 8 righe configurate dalla chiave di registro TypeGuessRows. In base alle prime 8 righe di dati, il driver Excel tenta di indovinare il tipo di dati di ogni colonna. Si supponga ad esempio che l'origine dati di Excel includa numeri e testo in una colonna. Se le prime 8 righe contengono numeri, il driver potrebbe determinare in base a tali prime 8 righe che i dati della colonna siano di tipo Integer. In questo caso SSIS ignorerà i valori di testo e li importerà come NULL nella destinazione.

Per risolvere questo problema, è possibile provare una delle soluzioni seguenti:

  • Modificare il tipo di colonna di Excel in Testo nel file di Excel.

  • Aggiungere la proprietà estesa IMEX alla stringa di connessione per eseguire l'override del comportamento predefinito del driver. Quando si aggiunge la proprietà estesa ";IMEX=1" alla fine della stringa di connessione, Excel considera tutti i dati come testo. Vedere l'esempio seguente:

    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\ExcelFileName.xlsx;Extended Properties="EXCEL 12.0 XML;HDR=YES;IMEX=1";
    

    Affinché questa soluzione funzioni in modo affidabile, potrebbe essere necessario modificare anche le impostazioni del Registro di sistema. Il file main.cmd è il seguente:

    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\15.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\16.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    
  • Salvare il file in formato CSV e modificare il pacchetto SSIS per supportare un'importazione CSV.

Caricare i dati da o in Excel con SQL Server Integration Services (SSIS)
Origine Excel
Destinazione Excel