Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Java + Excel


Автор: uxvant 22.10.2007, 13:23
Мне кажется что без вариантов. Apache POI не умеет! :(
Но всё же...

Автор: hydrant 22.10.2007, 14:52
Привет!
В принципе, есть вот такой вариант... Но мне он не по душе как-то.

Код

    public static void main(String[] args) {
        String excelFile = "C:\\test.xls";
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String url = "jdbc:odbc:Driver=Microsoft Excel Driver (*.xls);DBQ=" + excelFile;
            Connection con = DriverManager.getConnection(url);
            Statement st = con.createStatement();
            ResultSet rs1 = st.executeQuery("SELECT * FROM [Sheet1$]");
            while (rs1.next()) {
                System.out.print(rs1.getString(1));
                System.out.println();
            }
            con.close();

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

Автор: uxvant 22.10.2007, 15:53
Цитата(hydrant @ 22.10.2007,  14:52)
В принципе, есть вот такой вариант... 

Мне надо не просто прочитать файл...
Т.е. чтобы можно было вставить в ячейку какое-либо значение и (самое главное) высчитать результат по имеющимся формулам! 

Автор: v2v 23.10.2007, 15:11
надо юзать VBA через java.
вот гляды сюды:
http://j-integra.intrinsyc.com/support/com/doc/excel_example.html
http://j-integra.intrinsyc.com/support/com/doc/other_examples/Word_VBA_from_Java.htm

немного не то, но всё же
http://j-integra.intrinsyc.com/support/com/doc/javafromcom/excelvba2java.html

Автор: uxvant 30.10.2007, 08:22
v2v, спасибо... только мне не надо через COM.
Мне бы что-то типа SyncFusion которая для .Net  smile 

Автор: v2v 30.10.2007, 18:33
ну дык.. тогда тебе прийдётся вернутся к Апач ПОИ. То что ты написал он умеет: http://poi.apache.org/hssf/eval.html

Автор: uxvant 31.10.2007, 08:47
Цитата(v2v @ 30.10.2007,  20:33)
То что ты написал он умеет

Да формулы то он пересчитывает, да и то не все... Пришлось самому дописывать несколько.
Мне же нужно прочитать зашифрованную книгу, а то как это умеет POI можно http://poi.apache.org/apidocs/org/apache/poi/hssf/record/FilePassRecord.html
quote:
( HSSF does not support encryption because we don't feel like going to jail )  smile 


Вроде кто-то где-то говорил что можно попробовать JExcelAPI но у меня с ним тоже ничего не получилось...  smile 

Автор: alex_nevolin 31.10.2007, 11:32
А что значит зашифрованный Excel файл? Защищенный паролем на открытие или что-то другое?


Автор: uxvant 2.11.2007, 11:08
Цитата(alex_nevolin @  31.10.2007,  13:32 Найти цитируемый пост)
А что значит зашифрованный Excel файл? Защищенный паролем на открытие или что-то другое?

Нет, не просто защищен паролем, а именно зашифрован.
Можно, например, открыть книгу для общего доступа и посмотреть результат. При этом файл будет пересохранён и соответственно зашифрован.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)