2010-12-07 15 views
0

Ich lese Excell Sheet mit Openrowset-Funktion?Wie liest man Werte aus Excel mit Openrowset-Funktion?

Mein Excel-Blatt hat einen numerischen Wert in der Spalte "Allgemeiner Typ". Aus irgendeinem Grund werden diese Werte als Nullen übernommen, obwohl sie Werte haben. Ich bin mir nicht sicher, warum das passiert. Ich habe mir das Format der Felder angesehen und sie sind in Excel auf Allgemein eingestellt. Ich habe versucht, sie auf Text zu setzen, und das hat nicht geholfen.

Ich habe versucht, den Inhalt aus der Excel-Quelle in eine Textdatei im CSV-Format zu bringen und aus irgendeinem Grund kam das Textfeld mit numerischen Wert als leer (NULL).

Alle Eingänge auf diese Adresse werden sehr geschätzt.

SET @Cmd = 'INSERT INTO Table_01 
       SELECT * FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', ''Excel 8.0;Database=' + @ExcelFilePath + ''', 
       ''SELECT * FROM [Sheet1$]'')' 
    EXEC(@Cmd) 

Antwort

1

Dies ist mit TypeGuessRows und IMEX zu tun:

HKEY_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel/ 

Ein Wert von 0 bedeutet, dass alle Zeilen:

OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;HDR=YES;IMEX=1;Database=x.xls', 
'SELECT * FROM [Sheet2$]'); 

TypeGuesssRows finden werden.

+0

Ich setze den Wert auf 0 und es lesen alle numerischen Werte, aber jetzt AlphaNumeric Werte aus der gleichen Spalte. Tatsächlich hat die Spalte nur alphanumerische, nur numerische und alphabetische Zeichen. Was schlägst du hier vor? – Jango

+0

Dies ist, wenn Sie IMEX = 1 haben? Ich habe dies mit sehr gemischten Daten und SQL Server 2008 versucht, und es funktioniert für mich. – Fionnuala

+0

Danke Es hat auch für mich funktioniert. Früher habe ich nicht mit IMEX = 1 versucht. Danke noch einmal. – Jango

Verwandte Themen