0

openrowset 関数を使用して Excel シートを読んでいますか?

私のExcelシートには、一般的なタイプの列に数値があります。何らかの理由で、これらの値は値を持っていても null として取り込まれます。なぜこれが起こっているのかわかりません。フィールドのフォーマットを調べたところ、Excel で [一般] に設定されています。テキストに設定しようとしましたが、役に立ちませんでした。

Excelソースの内容を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)
4

1 に答える 1

1

これは、TypeGuessRows と IMEX に関係しています。

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

TypeGuesssRows は次の場所にあります。

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

値 0 は、すべての行を意味します。

于 2010-12-07T17:15:15.010 に答える