2010-12-07 41 views
0

openrowset関数を使用してExcelシートを読み取っていますか?Openrowset関数を使用してExcelから値を読み取る方法は?

My Excelシートには、一般タイプの列に数値があります。何らかの理由で、これらの値は値を持っていてもNULLとして引き継がれます。なぜこれが起こっているのか分かりません。フィールドの書式を調べたところ、ExcelでGeneralに設定されていましたが、Textに設定しようとしましたが、それは役に立ちませんでした。

エクセルソースの内容をCSV形式のテキストファイルに変換しようとしましたが、何らかの理由で数値を含むテキストフィールドが空白(NULL)として出てきました。

この問題を解決するためのご意見をいただければ幸いです。

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

答えて

1

これはTypeGuessRowsとIMEXで行うことです:0の値は、すべての行を意味

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

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

TypeGuesssRowsはで見つけることができます。

+0

値を0に設定すると、すべての数値が読み込まれますが、同じ列のAlphaNumeric値が生成されます。実際には、列には英数字、数字のみ、アルファベットのみがあります。ここで何をお勧めしますか? – Jango

+0

これはIMEX = 1のときですか?私は非常に混在したデータとSQL Server 2008でこれを試してみました。 – Fionnuala

+0

ありがとう私のためにも働いた。私はIMEX = 1で試してみませんでした。再度、感謝します。 – Jango

関連する問題