Java: чтение int из Excel в виде строки, возвращаемой как десятичное число? - PullRequest
0 голосов
/ 09 ноября 2010

Я пытаюсь прочитать целое число из файла 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") возвращает целое число с десятичным 0, как это "123456.0"

Я знаю, что вместо этого могу использовать rs.getInt ("телефон"), но в телефоне иногда есть символы, такие как "+", "#" и т. Д.

Какой лучший способ использовать rs.getString для получения целого числа как есть ??

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Попробуйте добавить

;IMEX=1

в строку подключения.Это указывает драйверу обрабатывать смешанные данные (данные разных типов данных) как текст.

Если он работает , а не , попробуйте добавить инструкцию IMEX=1 в оператор SQL..Если это все еще не работает, есть следующие опции: Использовать Apache POI;конвертировать лист Excel в CSV;использовать автоматизацию Office для явной установки типа данных столбца;переработать значение (т. е. применив некоторую операцию substring и т. д.).

0 голосов
/ 09 ноября 2010

Вы должны прочитать номер телефона в виде строки, а затем проанализировать его, чтобы избавиться от нежелательных символов.Наконец, преобразуйте его в int, используя Integer.parseInt(phoneNumberString).

...