All streams
Search
Write a publication
Pull to refresh
5
0
ebgans @ebgans

User

Send message
круто! в мэйлинг листах эта тема поднималась несколько раз, но так ничего путного посоветовать не смогли.

а сколько весит ooxml.jar с биньями только для XSLX? По идее должен быть около 30% от исходного.
с графика, действительно, есть над чем поработать.
Стандартный воркэраунд в XSSF — это создать шаблон с графиком а данные заливать через API.
а чем вам POI не угодил для xlsx? Раз уж вы используету POI-HSSF для генерации xlx, используйте POI-XSSF для xslx. У этих модулей общие интерфейсы, так что код будет один и тот же.
В XSSF тоже можно ковыряться в низкоуровневом XML если уж вам этого хочется.
Кроме того, в POI есть модуль SXSSF (S спереди означает streaming). В HSSF и XSSF модель документа строится в памяти и в случае больших репортов получаются довольно развесистые структуры которые жрут память. В SXSSF данные пишутся сразу в файл. Часть функциональности при этом теряется, зато объем памяти практически константый.
я слышал, что азиаты (Китай, Индия) ториевую тему активно продвигают. Похоже, запасов тория у них больше чем 8-го урана.
Согласен, GSoC — это отличная возможность отметиться в OpenSource.
В этом году метаться уже поздно — GSoC-2012 уже идет и прием заявок закрыт. Если вы студент и хотите поучаствовать в GSoC-2013, то ищите себе OpenSource проект, осваивайтесь в нем, зарабатывайте карму и в Марте 2013 подавайте заявку. Кандидаты с опытом участия в OpenSource имеют существенно выше шансы отобраться.
есть способ попроще: ClassLoader хранит список загруженных классов в приватной переменной classes:

    // The classes loaded by this class loader. The only purpose of this table
    // is to keep the classes from being GC'ed until the loader is GC'ed.
    private final Vector<Class<?>> classes = new Vector<>();


к ней можно достучаться через reflection и посмотреть что загружено. Примерно так:

        // get access to the private variable ClassLoader.classes
        Field fld = ClassLoader.class.getDeclaredField("classes");
        fld.setAccessible(true);

        // list classes loaded by the application class loader		
        ClassLoader appLoader = MyApp.class.getClassLoader();
        Vector<Class<?>> classes = (Vector<Class<?>>) fld.get(appLoader);
        Map<String, Class<?>> map = new HashMap<String, Class<?>>();
        for (Class<?> cls : classes) {
            System.out.println(cls);
        }


можно сгруппировать загруженные классы по джарам:

    // classes groupped by jar
    Map<String, Collection<Class> > classesByJar = new HashMap<String, Collection<Class>>();
    for(Class clz : loadedClasses){
        String jarLocation = clz.getProtectionDomain().getCodeSource().getLocation().toString();
        Collection<Class>  jarClasses = classesByJar.get(jarLocation );
        if(jarClasses == null) {
            jarClasses = new ArrayList<Class>();
            classesByJar.put(jarLocation, jarClasses);
        }
        jarClasses.add(clz);
    }


если загрузчик классов иерархический, то бежим по цепочке и выводим список для каждого звена.
как-то так.
чего-то я не въехал под какой лицензией они это дело выпустили? В исходниках licence header-а нет.
Ну здрасте! API один и тот же и есть две реализации для .xls и .xlsx форматов.
Посмотрите примеры: poi.apache.org/spreadsheet/quick-guide.html
в большинстве случаев используются унифицированные интерфейсы.

вот еще несколько более сложных примеров: poi.apache.org/spreadsheet/examples.html
везде используются общие интерфейсы.

читайте, батенька, доку.
спасибо, убрал.
Имя хаба Apache вводит в заблуждение. В стародавние времена имя Apache прочно ассоциировалось с httpd, но сейчас это далеко не так. Apache крышует десятки проектов на разных языках и платформах и httpd лишь один из них.
Могу добавить, что релиз 3.8-beta4 приурочен к 10-летию проекта Apache POI: 28 агуста 2001 года вышла самая первая версия 0.1 alpha.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity