0

次のようにExcelファイルから整数を読み込もうとしています:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String myExcel = "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ="";" +
                      "DriverID=22;READONLY=false";
        con = DriverManager.getConnection(myExcel);
        stmt = con.createStatement();
rs = stmt.executeQuery("select * from [users$] where userid=" + userid);
while(rs.next()) {
    System.out.println(rs.getString("phone"));
}

問題: Excel シートの電話 = 123456 と仮定すると、rs.getString("phone") は、この "123456.0" のように、10 進数 0 の整数を返します。

代わりに rs.getInt("phone") を使用できることはわかっていますが、電話には「+」、「#」などの文字が含まれることがあります。

rs.getString を使用して整数をそのまま取得する最良の方法は何ですか??

4

2 に答える 2

1

追加してみてください

;IMEX=1

接続文字列に。これは、混合データ(異なるデータ型のデータ)をテキストとして扱うようにドライバーに指示します。

動作しない場合は、SQLステートメントIMEX=1に命令を追加してみてください。それでも機能しない場合は、次のオプションがあります。ApachePOIを使用します。ExcelシートをCSVに変換します。Officeオートメーションを使用して、列のデータ型を明示的に設定します。値を作り直します(つまり、何らかの操作を適用するなどして)。substring

于 2010-11-09T14:34:02.487 に答える
0

電話番号を文字列として読み取り、解析して不要な文字を削除する必要があります。最後に、それをintusingに変換しInteger.parseInt(phoneNumberString)ます。

于 2010-11-09T14:15:55.667 に答える