Origine ExcelExcel Source

L'origine Excel consente di estrarre dati da fogli di lavoro o intervalli di una cartella di lavoro di MicrosoftMicrosoft Excel.The Excel source extracts data from worksheets or ranges in MicrosoftMicrosoft Excel workbooks.

Sono disponibili quattro diverse modalità di accesso ai dati per l'estrazione dei dati:The Excel source provides four different data access modes for extracting data:

  • Vista o tabella.A table or view.

  • Vista o tabella specificata in una variabile.A table or view specified in a variable.

  • Risultato di un'istruzione SQL.The results of an SQL statement. La query può essere con parametri.The query can be a parameterized query.

  • Risultato di un'istruzione SQL archiviata in una variabile.The results of an SQL statement stored in a variable.

Importante

In Excel un intervallo o un foglio di lavoro equivale a una vista o tabella.In Excel, a worksheet or range is the equivalent of a table or view. 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.The list of available tables in the Excel Source and Destination editors displays existing worksheets (identified by the $ sign appended to the worksheet name, such as Sheet1$) and named ranges (identified by the absence of the $ sign, such as MyRange). Per ulteriori informazioni, vedere la sezione Considerazioni sull'utilizzo.For more information, see the Usage Considerations section.

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.The Excel source uses an Excel connection manager to connect to a data source, and the connection manager specifies the workbook file to use. Per altre informazioni, vedere Excel Connection Manager.For more information, see Excel Connection Manager.

L'origine Excel include un output regolare e un output degli errori.The Excel source has one regular output and one error output.

Considerazioni sull'utilizzoUsage Considerations

La gestione connessione Excel usa il provider OLE DB MicrosoftMicrosoft 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 dati Excel, quindi leggere e scrivere informazioni.The Excel Connection Manager uses the MicrosoftMicrosoft OLE DB Provider for Jet 4.0 and its supporting Excel ISAM (Indexed Sequential Access Method) driver to connect and read and write data to Excel data sources.

Il comportamento di questo provider e del relativo driver è documentato in molti articoli della MicrosoftMicrosoft Knowledge Base e, sebbene tali articoli non siano specifici di Integration ServicesIntegration Services o del suo predecessore, Data Transformation Services, consentono di ottenere informazioni circa i comportamenti che possono produrre risultati imprevisti.Many existing MicrosoftMicrosoft Knowledge Base articles document the behavior of this provider and driver, and although these articles are not specific to Integration ServicesIntegration Services or its predecessor Data Transformation Services, you may want to know about certain behaviors that can lead to unexpected results. 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.For general information on the use and behavior of the Excel driver, see HOWTO: Use ADO with Excel Data from Visual Basic or 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.The following behaviors of the Jet provider with the Excel driver can lead to unexpected results when reading data from an Excel data source.

  • Origini dei dati.Data sources. 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.The source of data in an Excel workbook can be a worksheet, to which the $ sign must be appended (for example, Sheet1$), or a named range (for example, 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 a SQL statement, the name of a worksheet must be delimited (for example, [Sheet1$]) to avoid a syntax error caused by the $ sign. In Generatore query tali delimitatori vengono aggiunti automaticamente.The Query Builder automatically adds these delimiters. 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.When you specify a worksheet or range, the driver reads the contiguous block of cells starting with the first non-empty cell in the upper-left corner of the worksheet or range. 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.Therefore you cannot have empty rows in the source data, or an empty row between title or header rows and the data rows.

  • Valori mancanti.Missing values. 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.The Excel driver reads a certain number of rows (by default, 8 rows) in the specified source to guess at the data type of each column. 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.When a column appears to contain mixed data types, especially numeric data mixed with text data, the driver decides in favor of the majority data type, and returns null values for cells that contain data of the other type. 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.(In a tie, the numeric type wins.) Most cell formatting options in the Excel worksheet do not seem to affect this data type determination. È possibile modificare questo comportamento del driver per Excel specificando la Modalità di importazione.You can modify this behavior of the Excel driver by specifying Import Mode. 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à .To specify Import Mode, add IMEX=1 to the value of Extended Properties in the connection string of the Excel connection manager in the Properties window. Per altre informazioni, vedere l'articolo relativo a PRB sui valori di Excel restituiti come NULL tramite OpenRecordset DAO.For more information, see PRB: Excel Values Returned as NULL Using DAO OpenRecordset.

  • Testo troncato.Truncated text. 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.When the driver determines that an Excel column contains text data, the driver selects the data type (string or memo) based on the longest value that it samples. 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.If the driver does not discover any values longer than 255 characters in the rows that it samples, it treats the column as a 255-character string column instead of a memo column. I valori contenenti più di 255 caratteri potrebbero essere pertanto troncati.Therefore, values longer than 255 characters may be truncated. 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.To import data from a memo column without truncation, you must make sure that the memo column in at least one of the sampled rows contains a value longer than 255 characters, or you must increase the number of rows sampled by the driver to include such a row. È possibile aumentare il numero di righe campionate incrementando il valore di TypeGuessRows sotto la chiave del Registro di sistema HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel .You can increase the number of rows sampled by increasing the value of TypeGuessRows under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel registry key. Per altre informazioni, vedere l'articolo relativo a PRB sul trasferimento di dati dall'origine Jet 4.0 OLEDB che non si effettua con l'errore di buffer di overflow.For more information, see PRB: Transfer of Data from Jet 4.0 OLEDB Source Fails w/ Error.

  • Tipi di dati.Data types. Il driver per Excel riconosce solo un set limitato di tipi di dati.The Excel driver recognizes only a limited set of data types. 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).For example, all numeric columns are interpreted as doubles (DT_R8), and all string columns (other than memo columns) are interpreted as 255-character Unicode strings (DT_WSTR). Integration ServicesIntegration Services esegue il mapping dei tipi di dati di Excel nel modo seguente: maps the Excel data types as follows:

    • Numero – Numero a virgola mobile e precisione doppia (DT_R8)Numeric – double-precision float (DT_R8)

    • Valuta - Valuta (DT_CY)Currency – currency (DT_CY)

    • Valore booleano - Valore booleano (DT_BOOL)Boolean – Boolean (DT_BOOL)

    • Data/ora - datetime (DT_DATE)Date/time – datetime (DT_DATE)

    • Stringa - Stringa Unicode di 255 caratteri (DT_WSTR)String – Unicode string, length 255 (DT_WSTR)

    • Memo - Flusso di testo Unicode (DT_NTEXT)Memo – Unicode text stream (DT_NTEXT)

  • Conversione di tipi di dati e lunghezze.Data type and length conversions. Integration ServicesIntegration Services non viene eseguita la conversione implicita dei tipi di dati. does not implicitly convert data types. 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.As a result, you may need to use Derived Column or Data Conversion transformations to convert Excel data explicitly before loading it into a non-Excel destination, or to convert non-Excel data before loading it into an Excel destination. In questo caso può essere conveniente creare il pacchetto iniziale usando Importazione/Esportazione guidata SQL Server, che configura automaticamente le conversioni necessarie.In this case, it may be useful to create the initial package by using the Import and Export Wizard, which configures the necessary conversions for you. Di seguito sono riportati alcuni esempi di tali conversioni:Some examples of the conversions that may be required include the following:

    • Conversione tra colonne di Excel di tipo stringa Unicode e colonne di tipo stringa non Unicode con tabelle codici specificheConversion between Unicode Excel string columns and non-Unicode string columns with specific codepages

    • Conversione tra colonne di Excel di tipo stringa di 255 caratteri e colonne di tipo stringa di lunghezze diverseConversion between 255-character Excel string columns and string columns of different lengths

    • Conversione tra colonne di Excel di tipo numerico a precisione doppia e colonne numeriche di altro tipoConversion between double-precision Excel numeric columns and numeric columns of other types

Configurazione dell'origine ExcelExcel Source Configuration

È possibile impostare le proprietà tramite Progettazione SSISSSIS o a livello di codice.You can set properties through SSISSSIS Designer or programmatically.

Per altre informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor origine Excel , fare clic su uno degli argomenti seguenti:For more information about the properties that you can set in the Excel Source Editor dialog box, click one of the following topics: