powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Формирование отчета
102 сообщений из 102, показаны все 5 страниц
Формирование отчета
    #32965896
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица состоящая из 2 колонок,в первой колонке находятся названия работ,во второй их колличество.Названия статичны,их 10 штук,а вот колличество меняется в зависимости от sql запроса.
Я хочу чтобы при нажатии на кнопочку на моем фрейме вызывался Excel,в котором будет отображаться эта табличка.Как сделать,макросы что-ли использовать?
Большое спасибо
...
Рейтинг: 0 / 0
Формирование отчета
    #32965972
TableTest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если работаем с SWT то можно так.
Пишем даты таблицы в test.csv потом так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 import  org.eclipse.swt.program.Program;

 public   class  Test {
   public  Test() {
  }

   public   static   void  main(String[] args) {
    String[] extensions = Program.getExtensions();

    System.out.println("-----------------------------------");
     for  ( int  i =  0 ; i < extensions.length; i++) {
      System.out.println(" --> " + extensions[i]);
    }
    System.out.println("-----------------------------------");

    Program excel = Program.findProgram(".csv");
    String name = excel.getName();
    excel.execute("test.csv");
  }

}
...
Рейтинг: 0 / 0
Формирование отчета
    #32966027
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое SWT(только не пинайте сильно),можно по подробнее описать,что именно вы имели ввиду.Работаю в билдере.Спасибо
...
Рейтинг: 0 / 0
Формирование отчета
    #32966069
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
товарищ предлагает сохранить результат выборки в текстовой файл и потом запустить excel наподобие:
Код: plaintext
1.
2.
   txt = "excel и_имя_файла"
            Runtime.getRuntime().exec(txt);
как вариант если нужно использовать сохранение с формтированием то http://jakarta.apache.org/poi/
...
Рейтинг: 0 / 0
Формирование отчета
    #32966084
садомазо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
peter6636нажатии на кнопочку на моем фрейме
чисто из любопытства: фреймом в данном случае что является? JFrame?
...
Рейтинг: 0 / 0
Формирование отчета
    #32966103
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
садомазо peter6636нажатии на кнопочку на моем фрейме
чисто из любопытства: фреймом в данном случае что является? JFrame?
Да,а что?
...
Рейтинг: 0 / 0
Формирование отчета
    #32966138
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
black zorroтоварищ предлагает сохранить результат выборки в текстовой файл и потом запустить excel наподобие:
Код: plaintext
1.
2.
   txt = "excel и_имя_файла"
            Runtime.getRuntime().exec(txt);
как вариант если нужно использовать сохранение с формтированием то http://jakarta.apache.org/poi/
как это,типа так что-ли: Runtime.getRuntime().exec(txt);,где
txt="C:/Program Files/Microsoft Office/OFFICE11/EXCEL.EXE"+"my.txt" или как?
...
Рейтинг: 0 / 0
Формирование отчета
    #32966198
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да
а что вариант с коротким именем файла не работает ?
зачем мучаться с абсолютными путями ?
...
Рейтинг: 0 / 0
Формирование отчета
    #32966243
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Excel пишет,что не удается найти файл my.doc,он у меня там полюбому есть,что за фигня
...
Рейтинг: 0 / 0
Формирование отчета
    #32966276
пробел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
peter6636Excel пишет,что не удается найти файл my.doc,он у меня там полюбому есть,что за фигняа полный путь указываешь к файлу? а в полном пути пробелов нет?
...
Рейтинг: 0 / 0
Формирование отчета
    #32966370
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ok,файл он находит,данные тоже запихнем как-то туда,но как мне их запихнуть
так,чтобы оно все было красиво,т.е. чтобы данные о типе заявок были строго под колонкой с названием "Имя заявки",а колличество под колонкой "Колличество"
...
Рейтинг: 0 / 0
Формирование отчета
    #32966382
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636Ok,файл он находит,данные тоже запихнем как-то туда,но как мне их запихнуть
так,чтобы оно все было красиво,т.е. чтобы данные о типе заявок были строго под колонкой с названием "Имя заявки",а колличество под колонкой "Колличество"

Уже здесь говорили - http://jakarta.apache.org/poi/
...
Рейтинг: 0 / 0
Формирование отчета
    #32966395
пробел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
peter6636Ok,файл он находит,данные тоже запихнем как-то туда,но как мне их запихнуть
так,чтобы оно все было красиво,т.е. чтобы данные о типе заявок были строго под колонкой с названием "Имя заявки",а колличество под колонкой "Колличество"хм. а сейчас - как?
...
Рейтинг: 0 / 0
Формирование отчета
    #32966401
пробел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробел peter6636Ok,файл он находит,данные тоже запихнем как-то туда,но как мне их запихнуть
так,чтобы оно все было красиво,т.е. чтобы данные о типе заявок были строго под колонкой с названием "Имя заявки",а колличество под колонкой "Колличество"хм. а сейчас - как?
разве так нельзя сохранить в текстовый файл:

пример файла:
Код: plaintext
1.
2.
3.
4.
Имя заявки;Количество
Работа уборщиков мусора;123
Работа программистов;100
Работа начальников;135

PS Количество, кстати, с одной "л" пишется
...
Рейтинг: 0 / 0
Формирование отчета
    #32966456
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробел пробел peter6636Ok,файл он находит,данные тоже запихнем как-то туда,но как мне их запихнуть
так,чтобы оно все было красиво,т.е. чтобы данные о типе заявок были строго под колонкой с названием "Имя заявки",а колличество под колонкой "Колличество"хм. а сейчас - как?
разве так нельзя сохранить в текстовый файл:

пример файла:
Код: plaintext
1.
2.
3.
4.
Имя заявки;Количество
Работа уборщиков мусора;123
Работа программистов;100
Работа начальников;135

PS Количество, кстати, с одной "л" пишется
А 123,100,135 должны подставляться динамически
...
Рейтинг: 0 / 0
Формирование отчета
    #32966458
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen peter6636Ok,файл он находит,данные тоже запихнем как-то туда,но как мне их запихнуть
так,чтобы оно все было красиво,т.е. чтобы данные о типе заявок были строго под колонкой с названием "Имя заявки",а колличество под колонкой "Колличество"

Уже здесь говорили - http://jakarta.apache.org/poi/
Если бы я еще понимал что там написано,ни одной строчки кода нет,может на русском есть
...
Рейтинг: 0 / 0
Формирование отчета
    #32966462
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to peter:
Если хочешь, давай аську, расскажу подробнее как пользоваться poi.
Я уже немного наловчился в построении таких отчетов.
Сам этим занимаюсь :)
...
Рейтинг: 0 / 0
Формирование отчета
    #32966502
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GMaxto peter:
Если хочешь, давай аську, расскажу подробнее как пользоваться poi.
Я уже немного наловчился в построении таких отчетов.
Сам этим занимаюсь :)
Я бы с удовольствием,да у меня отрубили аську на работе,уроды такие,буду очен очень благодарен,если ты мне может по почте расскажешь как и что.
Спасибо.
...
Рейтинг: 0 / 0
Формирование отчета
    #32966507
пробел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
peter6636 пробел пробел peter6636Ok,файл он находит,данные тоже запихнем как-то туда,но как мне их запихнуть
так,чтобы оно все было красиво,т.е. чтобы данные о типе заявок были строго под колонкой с названием "Имя заявки",а колличество под колонкой "Колличество"хм. а сейчас - как?
разве так нельзя сохранить в текстовый файл:

пример файла:
Код: plaintext
1.
2.
3.
4.
Имя заявки;Количество
Работа уборщиков мусора;123
Работа программистов;100
Работа начальников;135

PS Количество, кстати, с одной "л" пишется
А 123,100,135 должны подставляться динамически
блин-на! дак файл текстовый и формируй динамически! йопта!
...
Рейтинг: 0 / 0
Формирование отчета
    #32966517
пробел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробел peter6636 пробел пробел peter6636Ok,файл он находит,данные тоже запихнем как-то туда,но как мне их запихнуть
так,чтобы оно все было красиво,т.е. чтобы данные о типе заявок были строго под колонкой с названием "Имя заявки",а колличество под колонкой "Колличество"хм. а сейчас - как?
разве так нельзя сохранить в текстовый файл:

пример файла:
Код: plaintext
1.
2.
3.
4.
Имя заявки;Количество
Работа уборщиков мусора;123
Работа программистов;100
Работа начальников;135

PS Количество, кстати, с одной "л" пишется
А 123,100,135 должны подставляться динамически
блин-на! дак файл текстовый и формируй динамически! йопта!
1. пишешь в файл в том формате, который я тебе описал выше (файл называешь test.csv)
2. вызываешь exec("PATH_TO_EXCEL", "PATH_TO_TEST.CSV")

ага?
...
Рейтинг: 0 / 0
Формирование отчета
    #32966620
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь качаем POI
В скаченном архиве в папке /docs/hssf/quick-guide.pdf приведены примеры основных фишек.

Вот тебе пример построения отчета, рабочий.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
 import  org.apache.poi.hssf.usermodel.*;
 import  org.apache.poi.hssf.util.HSSFColor;
 import  java.io.IOException;
 import  java.io.FileOutputStream;

 public   class  OutToExcell {
    // Данные для отчета
     static   int [] num = { 1 , 2 , 3 };
     static  String[] name = {"Наташа","Лена","Катя"};
     static  String[] tel = {"465-23-16","563-23-12","905-16-13"};

     public   static   void  main (String[] args) {
        // Создем книгу Excell
        HSSFWorkbook wb =  new  HSSFWorkbook();
        // Создаем лист
        HSSFSheet sheet1 = wb.createSheet("Report");
        // Задаем ширину первых трех столбцов
        sheet1.setColumnWidth(( short ) 0 , ( short ) ( 256 * 10 ));
        sheet1.setColumnWidth(( short ) 1 , ( short ) ( 256 * 20 ));
        sheet1.setColumnWidth(( short ) 2 , ( short ) ( 256 * 20 ));

        // Создаем шрифт для заголовка таблицы
        HSSFFont font01Bold = wb.createFont();
        font01Bold.setFontHeightInPoints(( short ) 8 );
        font01Bold.setFontName("Times New Roman");
        font01Bold.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

        // Создаем шрифт для данных
        HSSFFont font01Normal = wb.createFont();
        font01Normal.setFontHeightInPoints(( short ) 8 );
        font01Normal.setFontName("Times New Roman");
        font01Normal.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);

        // Создаем стиль ячейки для заголовка таблицы
        HSSFCellStyle cellstyleTblHdr = wb.createCellStyle();
        cellstyleTblHdr.setFont(font01Bold);
        cellstyleTblHdr.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        cellstyleTblHdr.setWrapText(true);
        cellstyleTblHdr.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
        cellstyleTblHdr.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
        cellstyleTblHdr.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
        cellstyleTblHdr.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
        cellstyleTblHdr.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
        cellstyleTblHdr.setFillForegroundColor(HSSFColor.LIGHT_GREEN.index);
        cellstyleTblHdr.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

        // Создаем стиль ячейки для данных в таблице.
        HSSFCellStyle cellstyleTblLeft = wb.createCellStyle();
        cellstyleTblLeft.setFont(font01Normal);
        cellstyleTblLeft.setAlignment(HSSFCellStyle.ALIGN_LEFT);
        cellstyleTblLeft.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        cellstyleTblLeft.setBorderLeft(HSSFCellStyle.BORDER_THIN);
        cellstyleTblLeft.setBorderRight(HSSFCellStyle.BORDER_THIN);
        cellstyleTblLeft.setWrapText(true);
        cellstyleTblLeft.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP);

        // Создаем объекты для работы со столбцами и строками
        HSSFCell cell;
        HSSFRow row;

        // Дальше рисуем заголовок таблицы
        // Создаем строку с номером 0. Ну типа первая строка.
        row = sheet1.createRow(( short ) 0 );

        // Заполняем шапку таблицы
        // Столбец 0
        cell = row.createCell(( short ) 0 );            // Создаем ячейку
        cell.setEncoding(cell.ENCODING_UTF_16);     // Это чтобы русский шрифт нормально отображался
        cell.setCellStyle(cellstyleTblHdr);         // Показываем какой стиль для ячейки использовать
        cell.setCellValue("Номер");                 // Пишем значение в ячейку

        // Столбец 1
        cell = row.createCell(( short ) 1 );
        cell.setEncoding(cell.ENCODING_UTF_16);
        cell.setCellStyle(cellstyleTblHdr);
        cell.setCellValue("Имя");

        // Столбец 2
        cell = row.createCell(( short ) 2 );
        cell.setEncoding(cell.ENCODING_UTF_16);
        cell.setCellStyle(cellstyleTblHdr);
        cell.setCellValue("Телефон");

        // Шапка заполнена
        // Побежали по массиву.
         int  r =  0 ;
         while  (r <  3 ) {
            // Создаем очередную строку
            row = sheet1.createRow(( short )r+ 1 );

            // И как и выше создаем ячейки и пишем в них данные из массива
            cell = row.createCell(( short ) 0 );
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            cell.setCellStyle(cellstyleTblLeft);
            cell.setEncoding(cell.ENCODING_UTF_16);
            cell.setCellValue(num[r]);

            cell = row.createCell(( short ) 1 );
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            cell.setCellStyle(cellstyleTblLeft);
            cell.setEncoding(cell.ENCODING_UTF_16);
            cell.setCellValue(name[r]);

            cell = row.createCell(( short ) 2 );
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            cell.setCellStyle(cellstyleTblLeft);
            cell.setEncoding(cell.ENCODING_UTF_16);
            cell.setCellValue(tel[r]);
            r++;

    }

        // Пишем все полученное  файл
        FileOutputStream fileOut;
         try  {
            fileOut =  new  FileOutputStream("c:/report.xls");
            wb.write(fileOut);
            fileOut.close();
        }
         catch  (IOException e) {
        }

    }
}

Если что непонятно, спрашивай :)

P.S. Все имена и телефоны вымышлены.
...
Рейтинг: 0 / 0
Формирование отчета
    #32966656
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 peter6636 > файл он находит,данные тоже запихнем как-то туда,но как мне их запихнуть
так,чтобы оно все было красиво,т.е. чтобы данные о типе заявок были строго под колонкой с названием "Имя заявки",а колличество под колонкой "Колличество"

Нужно распределить - кто , что должен делать, по-моему:
Java приложение должно получать данные из базы и затем передать их, что возможно только через файл (если Jakarta POI не использовать, тоже сейчас только глянул) на обработку Excel с его запуском ,как описано выше. А в Excel'ком файле уже должен быть VBA код, ответственный за представление данных, которые Excel возьмет из файла.
Это по моему наиболее разумный вариант, т.к. Excel является приложением , наиболее активно используемым для анализа и представления данных пользователю, значит оно и должно быть ответсвенно за представление информации человеку.
И в любом случае, если речь о представлении надо переносить эти функции в интсрумент , которы йзаненимается представлением данных, даже при использовании POI невозможно будет не разбираться с моделью объектов Excel, так что естественнее программировать сам Excel'кий файл.
...
Рейтинг: 0 / 0
Формирование отчета
    #32966687
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefiИ в любом случае, если речь о представлении надо переносить эти функции в интсрумент , которы йзаненимается представлением данных, даже при использовании POI невозможно будет не разбираться с моделью объектов Excel, так что естественнее программировать сам Excel'кий файл.

Посмотри пример выше. По моему никаких объектов Excell там нет. Чистая Java. И какая разница где формировать представление? В моем случае надо писать только на Java. В твоем, еще и макрос. Я от этого варианта отказался. ИМХО через java удобнее.
...
Рейтинг: 0 / 0
Формирование отчета
    #32966732
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 GMax >
кстати, что там качать - из папки Dev или Release? И все выкачивать ?
----------------
2 peter6636 >
Ну вот GMax как раз привел альтернативный вариант , но он и показывает, что без изучения компонентной модели Excel не обходится, а программирование несравненно более трудоемкое и по всей видимости менее функциональное по своим возможностям ( скажем - можно там обработать объект PivotTable ? ),
чем то же программирование в VBA Excel.

PS. Мне не раз доводилось встречать в разных языках программирование объектов чужих приложений и всегда я не понимал,- зачем это сделано, так это обстоит и сейчас.
...
Рейтинг: 0 / 0
Формирование отчета
    #32966739
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GMAx> Посмотри пример выше. По моему никаких объектов Excell там нет.

Как это нет, - а все эти листы,ячейки,фонты, и пр. ? Разве это не требует изучения. Хотя, это всего лишб является отражением тех же объектов Excel.
Кстати, как там есть аналоги ВСЕХ объектов Excel или только некоторых?

И какая разница где формировать представление?
Огромная. Я попытался уже это объясняить выше. Разница в правильности инфраструктуры разрабатываемого приложения.
...
Рейтинг: 0 / 0
Формирование отчета
    #32966748
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefi2 GMax >
кстати, что там качать - из папки Dev или Release? И все выкачивать ?


Релиз - Бин - Зип файл.
...
Рейтинг: 0 / 0
Формирование отчета
    #32966754
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefiGMAx> Посмотри пример выше. По моему никаких объектов Excell там нет.

Как это нет, - а все эти листы,ячейки,фонты, и пр. ? Разве это не требует изучения. Хотя, это всего лишб является отражением тех же объектов Excel.
Кстати, как там есть аналоги ВСЕХ объектов Excel или только некоторых?

А чем они в данном случае отличаются от обычных объектов Java?
И что там изучать? Почитать API где какой метод использовать? Стандартный механизм для Java.
Аналогов всех объектов нет. Для построения простых отчетов хватает.
А мне больше и не надо (c) Реклама.
А вот врубаться в VB мне не хочется. Мне так проще.
И никакой трудоемкости. Один раз написал шаблон и с помощью копи - пасте отчет формируется в течении 10 - 15 минут.
Кстати и выводится довольно быстро.
...
Рейтинг: 0 / 0
Формирование отчета
    #32966826
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я не смогу , конечно, объяснить, если ты уже сильно не захочешь понять, вспомни хотя бы - зачем производится разделение бизнес логики логики отображения на сервере по сервлетам и jsp .

А результаты будут следующие :
использование оболочек типа POI для представления в Excel :
- невозможно понять объекты оболочки(POI), не понимая объекты оригинала(Excel) . Т.о. придется изучить и то и то.
- после изучения объектов Excel изучение VBA для его программирования займет вряд ли 5% уже потраченного времени, а раз уж решил связываться с MS'ским тулом, то сразу попутно открываешь для себя массу дополнителных возможностей.
- использование оболочки всегда сложнее и менее функционально по возможностям;
- использовать столь(наверное самое ) богатое по возможностям представления и анализа средство как Excel для построения простых отчетов, кооторый похволяет POI - бессмысленно. Отчеты в Excel должны быть мощными.
- представлять данные нужно в том инструменте, который для этого предназначен, все остальное является натяжкой. Это пожалуй, главное .
- есть одно достоинство у оболочки - не надо промежуточный файл для обмена данными с Excel
Вообще , пока я вижу, что это ошибка - такое использование Java - нельзя его привязывать , даже через API POI к конкретным системам типа Excel.
...
Рейтинг: 0 / 0
Формирование отчета
    #32966898
TableTest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так не совсем по теме но...
можно так–же взять какой нибудь Free-Report-Tool типа

http://www.jfree.org/jfreereport/

http://jasperreports.sourceforge.net/

http://datavision.sourceforge.net/

найти Plig-In к JBuilder или к Eclipse, для составления Preview, из Preview получиш всё что захочеш (output to HTML, XML, PDF, CSV and more)
...
Рейтинг: 0 / 0
Формирование отчета
    #32967008
братва. вы че-то путаете. какие нафиг объекты Excel? вы че?
файл экселя - обычный бинарный файл определенного формата.
все. POI просто предоставляет механизм чтения этого файла
с отображением в классы. никакого понимания тут объектов экселя
не надо. че там? книга, листы, строки, столбцы. какие тут понимания
особые?
...
Рейтинг: 0 / 0
Формирование отчета
    #32967678
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишет cannot access class import org.apache.poi.hssf.util.HSSFColor;
Архив подключил poi-2.5.1-final-20040804.jar,а оно не напешт,в чем проблема?
...
Рейтинг: 0 / 0
Формирование отчета
    #32967733
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри, есть такой класс в пакете?
Путь к нему правильно прописал? Другие импорты нормально работают?
...
Рейтинг: 0 / 0
Формирование отчета
    #32967739
паки-паки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GMaxПосмотри, есть такой класс в пакете?
Путь к нему правильно прописал? Другие импорты нормально работают?
а причем тут есть ли класс? каннот акцес != класс нот фаунд
...
Рейтинг: 0 / 0
Формирование отчета
    #32967753
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХЗ На другие то иморты по ходу не ругается.
Просто выдвинул предположение.
...
Рейтинг: 0 / 0
Формирование отчета
    #32967790
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зпрпботало.Ошибка была в том,что я подключал архив к билдеру,используя default project properties,а надо было в project properties
...
Рейтинг: 0 / 0
Формирование отчета
    #32990001
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для GMax

формирование отчета в Excel происходит при нажатии кнопки "Создать отчет", при повторном нажатии данные дозаписываются в старый файл, подскажите как перед новой записью очищать лист.
пробовал удалять и создавать сново лист, но кроме ошибки это ни чего не дало. да и файл после этого пришлось удалить.

и еще такой вопрос
в отчет должны быть включены только те строки в которых в определенном столбце есть необходимая информация. Строки эти записывать в файл не проблема , а проблема в следующем:
например:
всего в первоначальной таблице 15 строк
в отчет нужно записать 1-ю, 2-ю, 4-ю, 9-ю и 13-ю.

в файле .XLS получаем следующее
1. информация
2. информация
пусто
3. информация
пусто
пусто
пусто
пусто
4. информация
пусто
пусто
пусто
5. информация
пусто
пусто

т.е. 15 строк
а хотелось бы видеть только 5 строк с нужной информацией

подскажите что делать?
...
Рейтинг: 0 / 0
Формирование отчета
    #32990055
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modem...формирование отчета в Excel происходит при нажатии кнопки "Создать отчет", при повторном нажатии данные дозаписываются в старый файл, подскажите как перед новой записью очищать лист.
пробовал удалять и создавать сново лист, но кроме ошибки это ни чего не дало. да и файл после этого пришлось удалить.
Проверить, существует ли данный файл, и если да, то сначала его удалить, а потом писать уже в новый.

modemв отчет должны быть включены только те строки в которых в определенном столбце есть необходимая информация. Строки эти записывать в файл не проблема , а проблема в следующем:
...
т.е. 15 строк
а хотелось бы видеть только 5 строк с нужной информацией

подскажите что делать?Перед записью проверять нужна ли строка, и если нет, то просто ее не писать.
...
Рейтинг: 0 / 0
Формирование отчета
    #32990103
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GMax спасибо за совет
попробую на практике, сообщу о результатах
...
Рейтинг: 0 / 0
Формирование отчета
    #32990168
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GMax, результат пока печальный
делаю так
File aFile= new File("D:\\work\\Excel_word_java\\testSZ.xls");
if(aFile.exists()==true)//проверка на существование
{
aFile.delete();//попытка удалить файл
}
else
{}
fileOut=new FileOutputStream("D:\\work/Excel_word_java/testSZ.xls");
wb.write(fileOut);
fileOut.flush();
fileOut.close();
Runtime rt=Runtime.getRuntime();
Process pr=rt.exec("C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE "+ aFile)//открывает файл

в итоге файл так и не удаляется. и при повторном нажатии на кнопку все дозаписывается в то что было
но самое странное это то, что при первом нажатии на кнопку "создать отчет" (не смотря на то, что файл уже существует) информация как бы записывается в чистый файл. Ломаю голову.

с пустыми строками пока работаю
...
Рейтинг: 0 / 0
Формирование отчета
    #32990184
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторif(aFile.exists()==true)//проверка на существование

это чеза прикол? :) проще надо быть: if (aFile.exists()) ...

K.I.S.S.: Keep It Simple Stupid
...
Рейтинг: 0 / 0
Формирование отчета
    #32990279
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну попробуй так что ли...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
        File aFile=  new  File("D:\\work\\Excel_word_java\\testSZ.xls");
         if (aFile.exists()) {
              try  {
                 aFile.createNewFile();
             }
              catch  (IOException e) {
                System.err.println (e);
             }
        }
         else  {
              try  {
                FileOutputStream fileOut;
                fileOut= new  FileOutputStream("D:\\work/Excel_word_java/testSZ.xls");
                wb.write(fileOut); // wb - это наша Excell книга
                fileOut.close();
                Runtime rt=Runtime.getRuntime();
                Process pr=rt.exec("C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE "+ aFile)
             }
              catch  (IOException e) {
                 System.err.println (e);
             }
        }
...
Рейтинг: 0 / 0
Формирование отчета
    #32990521
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ура, получилось 'не создавать' пустые строки
а вот с повторным нажатием пока косяк.
не пересоздает он этот файл!
...
Рейтинг: 0 / 0
Формирование отчета
    #32990527
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты перед тем как записывать в него, хоть закрываешь его в Excellе? :)
...
Рейтинг: 0 / 0
Формирование отчета
    #32990536
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yuniki
- невозможно понять объекты оболочки(POI), не понимая объекты оригинала(Excel) . Т.о. придется изучить и то и то.не суди по себе
...
Рейтинг: 0 / 0
Формирование отчета
    #32990541
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yuniki- использование оболочки всегда сложнее и менее функционально по возможностям;не суди по себе
...
Рейтинг: 0 / 0
Формирование отчета
    #32990546
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя это тоже не повлияет.
Ты уверен, что проблема происходит при перезаписи файла, а не в том, что ты при формировании отчета не создаешь новую книгу, а дописываешь в старую?
...
Рейтинг: 0 / 0
Формирование отчета
    #32990547
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yuniki- представлять данные нужно в том инструменте, который для этого предназначен, все остальное является натяжкой. Это пожалуй, главное .кто сказал? что такое "представлять"?
...
Рейтинг: 0 / 0
Формирование отчета
    #32990555
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yuniki- использовать столь(наверное самое ) богатое по возможностям представления и анализа средство как Excel для построения простых отчетов, кооторый похволяет POI - бессмысленно. Отчеты в Excel должны быть мощными
что в экселе мощного? формулы? а еще?

--
а?
...
Рейтинг: 0 / 0
Формирование отчета
    #32990662
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Excel закрываю.
ща с книгой проверю
...
Рейтинг: 0 / 0
Формирование отчета
    #32990670
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Excel в моем случае для вывода информации в виде таблицы.
в .txt-шнике не серьезно
а в word-е пока не умею, да и найти нормльные классы не получается.
есть другие предложения?
...
Рейтинг: 0 / 0
Формирование отчета
    #32990743
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JasperReport %)
...
Рейтинг: 0 / 0
Формирование отчета
    #32990986
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АМИНЬ
...
Рейтинг: 0 / 0
Формирование отчета
    #32991109
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636АМИНЬзаработало?
...
Рейтинг: 0 / 0
Формирование отчета
    #32991197
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ JE peter6636АМИНЬзаработало?
у меня уже давно заработало,еще в начале этой темы,это я так.
...
Рейтинг: 0 / 0
Формирование отчета
    #32991205
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что ж quick start не написал, когда я просил.
Лень? :)
...
Рейтинг: 0 / 0
Формирование отчета
    #32991238
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GMaxЧто ж quick start не написал, когда я просил.
Лень? :)
а я уже писал что у меня заработало,посмотри выше,цитирую сам себя
Код: plaintext
Зпрпботало.Ошибка была в том,что я подключал архив к билдеру,используя  default  project properties,а надо было в project properties
...
Рейтинг: 0 / 0
Формирование отчета
    #32991256
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ему про Jasper, а он мне про POI...
Совсем запутал.
...
Рейтинг: 0 / 0
Формирование отчета
    #32991278
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GMaxЯ ему про Jasper, а он мне про POI...
Совсем запутал.
Я когда-то сел разбираться с джаспером,оказалось,что для того,чтобы создать с его помощью отчет,сначала необходимо создать файл-шаблон отчета на xml,которого я не знаю,вот я и забил на него,поэтому я и сказал,что если знаешь xml можно понять как делать отчеты
...
Рейтинг: 0 / 0
Формирование отчета
    #32991292
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нужно.
Достаточно скачать GUI Designer. Он за тебя xml файл сделает. Ты только рисуй.
...
Рейтинг: 0 / 0
Формирование отчета
    #32991299
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GMaxНе нужно.
Достаточно скачать GUI Designer. Он за тебя xml файл сделает. Ты только рисуй.
Вот блин,а где этот дизайнер взять?
...
Рейтинг: 0 / 0
Формирование отчета
    #32991304
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636 GMaxНе нужно.
Достаточно скачать GUI Designer. Он за тебя xml файл сделает. Ты только рисуй.
Вот блин,а где этот дизайнер взять?
Выбирай
Я пробовал только iReport. В принципе вроде ниче.
...
Рейтинг: 0 / 0
Формирование отчета
    #32991715
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GMax peter6636 GMaxНе нужно.
Достаточно скачать GUI Designer. Он за тебя xml файл сделает. Ты только рисуй.
Вот блин,а где этот дизайнер взять?
Выбирай
Я пробовал только iReport. В принципе вроде ниче.
Дружище,если тебе не сложно,скинь пожалуйста примерчик с отчетом,и еще, как нацепить дизайнер к джасперу.
Спасибо.
р.s.:peter567@mail.ru
...
Рейтинг: 0 / 0
Формирование отчета
    #32991732
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я лучше напишу мини гайд.
Но не сегодня.
Работы много, да и настроение не то.
...
Рейтинг: 0 / 0
Формирование отчета
    #32991744
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GMaxЯ лучше напишу мини гайд.
Но не сегодня.
Работы много, да и настроение не то.
Ок,а что с настроением,как когда-то мне сказали "не бери дурного в голову и тяжелого в руки ",если че пиши просто так,я 5 лет психологом работал,потрищим.
Удачи.
...
Рейтинг: 0 / 0
Формирование отчета
    #32991756
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636я 5 лет психологом работалдавай быстрей аську настраивай :)
...
Рейтинг: 0 / 0
Формирование отчета
    #32991789
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ JE peter6636я 5 лет психологом работалдавай быстрей аську настраивай :)
5 балов,но у меня инет через прокси на котором аська отрублена
...
Рейтинг: 0 / 0
Формирование отчета
    #32991883
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636 А.Грасоff™ JE peter6636я 5 лет психологом работалдавай быстрей аську настраивай :)
5 балов,но у меня инет через прокси на котором аська отрублена
Могу научить. Ставишь Jaber и через него спокойно пользуешься аськой. У нас так и сделано, только смотри что б начальник не запалил или админ :)
...
Рейтинг: 0 / 0
Формирование отчета
    #32991890
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не запалил в том смысле, что б открытую аську на мониторе не увидел :)
...
Рейтинг: 0 / 0
Формирование отчета
    #32991893
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen peter6636 А.Грасоff™ JE peter6636я 5 лет психологом работалдавай быстрей аську настраивай :)
5 балов,но у меня инет через прокси на котором аська отрублена
Могу научить. Ставишь Jaber и через него спокойно пользуешься аськой. У нас так и сделано, только смотри что б начальник не запалил или админ :)
Что такое Jaber,где его брать?
...
Рейтинг: 0 / 0
Формирование отчета
    #32991917
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jaber это протокол такой на подобе аськи ну и к нему клиенты всякие графические есть. В гугле найди и скачай. Вишка вся в том, что этот протокол позволяет общатся с клиентами у которых ICQ и при этом, он пакеты ICQ как то хитро отправляет, по своему и фильтр серверный, который рубает обычные ICQ пакеты, те которые от jabera идут не трогает.
...
Рейтинг: 0 / 0
Формирование отчета
    #32991926
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Формирование отчета
    #32992346
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура!
все работает!!!
большое Спасибо!!
...
Рейтинг: 0 / 0
Формирование отчета
    #32992642
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modemУра!
все работает!!!
большое Спасибо!!
Так а в чем же гемор был?
...
Рейтинг: 0 / 0
Формирование отчета
    #32992734
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ JE peter6636я 5 лет психологом работалдавай быстрей аську настраивай :)
А что есть какие-то проблемы
...
Рейтинг: 0 / 0
Формирование отчета
    #32992742
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636 А.Грасоff™ JE peter6636я 5 лет психологом работалдавай быстрей аську настраивай :)
А что есть какие-то проблемыесли у человека нет проблем, значит это труп
...
Рейтинг: 0 / 0
Формирование отчета
    #32992753
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ JE peter6636 А.Грасоff™ JE peter6636я 5 лет психологом работалдавай быстрей аську настраивай :)
А что есть какие-то проблемыесли у человека нет проблем, значит это труп
Логично,тогда давай рассказывай что и как,можешь на мыло писать- peter567@mail.ru,конфиденциальность гарантирую.
...
Рейтинг: 0 / 0
Формирование отчета
    #32993036
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GMaxЯ лучше напишу мини гайд.
Но не сегодня.
Работы много, да и настроение не то.
Ну как сегодня настроение?
...
Рейтинг: 0 / 0
Формирование отчета
    #32993205
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636 GMaxЯ лучше напишу мини гайд.
Но не сегодня.
Работы много, да и настроение не то.
Ну как сегодня настроение?
Настроение намано.
Да вот только понимаешь какая незадача. Клиенты месяц закрывают :)
Работы очень много.
Ты не торопись. Я сказал, что напишу, значит напишу.
Вот только не так быстро :(
...
Рейтинг: 0 / 0
Формирование отчета
    #32993232
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
месяц же начался! ты что?!
...
Рейтинг: 0 / 0
Формирование отчета
    #32993243
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А проводить прошедший то надо :)
Все что не делалось в марте, теперь быстро делают в апреле.
...
Рейтинг: 0 / 0
Формирование отчета
    #32995477
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да глупая ошибка...
книгу рано создавал, поэтому при повторном нажатии данные записывались в старую книгу
...
Рейтинг: 0 / 0
Формирование отчета
    #33002833
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уважаемый GMax, подскажи как при формировнии отчета объединять ячейки.
т.е с D12:D14(9 ячеек).
...
Рейтинг: 0 / 0
Формирование отчета
    #33002853
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modemуважаемый GMax, подскажи как при формировнии отчета объединять ячейки.
т.е с D12:D14(9 ячеек).

А как же чтение документации? :)
В doc, в папке hssf есть файлик quick-guide там все примеры приведены.

Вот оттуда пример объединения ячеек:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
HSSFWorkbook wb =  new  HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
HSSFRow row = sheet.createRow(( short )  1 );
HSSFCell cell = row.createCell(( short )  1 );
cell.setCellValue("This is a test of merging");
// Здесь и объединяем ячейки. Подробнее см. API для метода addMergedRegion
sheet.addMergedRegion( new  Region( 1 ,( short ) 1 , 1 ,( short ) 2 ));
// Write the output to a file
FileOutputStream fileOut =  new  FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
...
Рейтинг: 0 / 0
Формирование отчета
    #33002866
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ты совершенно прав.
читаю!
Спасибо за оперативность, как раз сейчас мне этого и не хватает!!
...
Рейтинг: 0 / 0
Формирование отчета
    #33009627
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет это сново я.
пробую реализовать пример, но возникают неуастранимые ошибки
помогите.

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet( "new sheet" );

// Create a merged region
HSSFRow row = sheet1.createRow( (short) 1 );
HSSFRow row2 = sheet1.createRow( (short) 2 );
HSSFCell cell = row.createCell( (short) 1 );
cell.setCellValue( "This is a test of merging" );
Region region = new Region( 1, (short) 1, 4, (short) 4 );
sheet1.addMergedRegion(region);

// Set the border and border colors.
final short borderMediumDashed = HSSFCellStyle.BORDER_MEDIUM_DASHED;
HSSFRegionUtil.@setBorderBottom@( borderMediumDashed,region, sheet1, wb );
HSSFRegionUtil.@setBorderTop@( borderMediumDashed,region, sheet1, wb );
HSSFRegionUtil.@setTopBorder@Color(HSSFColor.AQUA.index, region, sheet1, wb);

// Shows some usages of HSSFCellUtil
HSSFCellStyle style = wb.createCellStyle();
style.setIndention((short)4);
HSSFCellUtil.createCell(row, 8, "This is the value of the cell", style);
HSSFCell cell2 = HSSFCellUtil.createCell( row2, 8, "This is the value of the cell");
HSSFCellUtil.@setAlignment@(cell2, wb, HSSFCellStyle.ALIGN_CENTER);

Ругается на то что выделено знаками '@'

"TestExcel.java": Error #: 314 : cannot access class org.apache.commons.lang.exception.NestableException; class not found: class org.apache.commons.lang.exception.NestableException at line 34, column 20
"TestExcel.java": Error #: 357 : incompatible throws list; found: org.apache.commons.lang.exception.NestableException, required: java.lang.Throwable at line 34, column 20
"TestExcel.java": Error #: 357 : incompatible throws list; found: org.apache.commons.lang.exception.NestableException, required: java.lang.Throwable at line 35, column 19
"TestExcel.java": Error #: 357 : incompatible throws list; found: org.apache.commons.lang.exception.NestableException, required: java.lang.Throwable at line 39, column 19
"TestExcel.java": Error #: 357 : incompatible throws list; found: org.apache.commons.lang.exception.NestableException, required: java.lang.Throwable at line 48, column 18
...
Рейтинг: 0 / 0
Формирование отчета
    #33009669
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя опять по ходу проблемы с настройками билдера.
Класс нот фаунд, кэннот аксес...
Здесь не в коде дело.

P.S. Выделяй код тегами SRC, неудобно же читать.
...
Рейтинг: 0 / 0
Формирование отчета
    #33009820
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modem пропиши пути ко всем джарам
...
Рейтинг: 0 / 0
Формирование отчета
    #33009825
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GMaxВыделяй код тегами SRC, неудобно же читать.наконец-то! :) еще одного это задело :)
...
Рейтинг: 0 / 0
Формирование отчета
    #33012785
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. подключать в проект/свойства/библиотеки
да?
...
Рейтинг: 0 / 0
Формирование отчета
    #33012793
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modemт.е. подключать в проект/свойства/библиотеки
да?ага
...
Рейтинг: 0 / 0
Формирование отчета
    #33024285
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подключены jar-ы
poi-2.5.1-final-20040804.jar
poi-contrib-2.5.1-final-20040804.jar
poi-scratchpad-2.5.1-final-20040804.jar

но ошибки остались!
что делать? что нужно еще подключить, скачать?

рассматривая этот пример приследовалась цель понять как задаются свойства для объединенных ячеек (нужно расположение информации сверху и слева, а по умолчанию снизу)
...
Рейтинг: 0 / 0
Формирование отчета
    #33024345
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modemподключены jar-ы
poi-2.5.1-final-20040804.jar
poi-contrib-2.5.1-final-20040804.jar
poi-scratchpad-2.5.1-final-20040804.jar

но ошибки остались!
что делать? что нужно еще подключить, скачать?

рассматривая этот пример приследовалась цель понять как задаются свойства для объединенных ячеек (нужно расположение информации сверху и слева, а по умолчанию снизу)

Вообще-то больше ничего не нужно. Я даже скажу больше, для того примера, что я приводил нужно только poi-2.5.1-final-20040804.jar.
Приведи код, который у тебя не работает и на что ругается. Желательно весь.
Если весь очень большой, попробуй написать маленькую тестовую прогу, которая будет делать те основные моменты, которые у тебя не работают в основной. Причем она должна быть отвязана от реальных данных. Когда ты получишь такой код, обычно становится сразу понятно где у тебя ошибка. Если же понятно не станет, кидай сюда, попробуем разобраться.
...
Рейтинг: 0 / 0
Формирование отчета
    #33032721
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вчера лазил по ненашенским форумам и наткнулся на еще одну библиотеку для работы с Excell. Меня это заинтересовало и я решил с ней поэксперементировать. И был приятно удивлен. Чем она мне понравилась больше чем POI:
1. Библиотека постоянно обновляется. Последний билд апрель 2005. У POI - февраль 2004.
2. Возможности в принципе те же, только вот диаграммы не позволяет создавать.
3. Размер кода получается немного меньше чем в POI.
4. И особенно был удивлен отсутствием проблем с русским языком. Русский текст вставляется без всяких проблем. В POI с этим сложнее. Кстати здесь можно давать листам русские имена, в POI насколько я знаю - нет.
5. И то же free.

Скачать ее можно здесь

А теперь пример кода, выполняющий тоже самое, что и код, приведеный в этом топике с применением POI.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
 import  jxl.*;
 import  jxl.write.*;
 import  jxl.write.Number;
 import  java.io.File;

 public   class  ExcellTest {
    // Данные для отчета
     static   int [] num = { 1 , 2 , 3 };
     static  String[] name = {"Наташа","Лена","Катя"};
     static  String[] tel = {"465-23-16","563-23-12","905-16-13"};

     public   static   void  main (String args[]) {
         try  {
            // Создаем книгу Excell
            WritableWorkbook wb = Workbook.createWorkbook( new  File ("c:/temp/report2.xls"));
            // Создаем лист
            WritableSheet sheet = wb.createSheet("Лист 1",  0 );
            // Задаем ширину первых трех столбцов
            sheet.setColumnView( 0 , 10 );
            sheet.setColumnView( 1 , 20 );
            sheet.setColumnView( 2 , 20 );
            // Создаем шрифт для данных
            WritableFont font01Normal =  new  WritableFont (WritableFont.TIMES,  8 , WritableFont.BOLD);
            // Создаем стиль ячейки для заголовка таблицы
            WritableCellFormat cellstyleTblHdr =  new  WritableCellFormat (font01Normal);
            cellstyleTblHdr.setAlignment(Alignment.CENTRE);
            cellstyleTblHdr.setWrap(true);
            cellstyleTblHdr.setBorder(Border.ALL, BorderLineStyle.MEDIUM);
            cellstyleTblHdr.setVerticalAlignment(VerticalAlignment.CENTRE);
            cellstyleTblHdr.setBackground(Colour.LIGHT_GREEN, Pattern.SOLID);

            // Создаем стиль ячейки для данных в таблице.
            WritableCellFormat cellstyleTblLeft =  new  WritableCellFormat (font01Normal);
            cellstyleTblLeft.setAlignment(Alignment.LEFT);
            cellstyleTblLeft.setWrap(true);
            cellstyleTblLeft.setBorder(Border.BOTTOM, BorderLineStyle.MEDIUM);
            cellstyleTblLeft.setBorder(Border.LEFT, BorderLineStyle.MEDIUM);
            cellstyleTblLeft.setBorder(Border.RIGHT, BorderLineStyle.MEDIUM);
            cellstyleTblLeft.setVerticalAlignment(VerticalAlignment.TOP);

            // Дальше рисуем заголовок таблицы
            sheet.addCell( new  Label( 0 , 0 ,"Номер",cellstyleTblHdr));
            sheet.addCell( new  Label( 1 , 0 ,"Имя",cellstyleTblHdr));
            sheet.addCell( new  Label( 2 , 0 ,"Телефон",cellstyleTblHdr));

            // Шапка заполнена
            // Побежали по массиву.
             int  r =  0 ;
             while  (r <  3 ) {
                // И как и выше пишем данные из массива
                sheet.addCell( new  Number ( 0 , r+ 1 , num[r], cellstyleTblLeft));
                sheet.addCell( new  Label ( 1 , r+ 1 , name[r], cellstyleTblLeft));
                sheet.addCell( new  Label ( 2 , r+ 1 , tel[r], cellstyleTblLeft));
                r++;

           }
            // Пишем в файл
            wb.write();
            wb.close();
        }
         catch  (Exception e) {
            System.err.println(e);
        }
    }
}

Единственно, я может криво писал и не до конца разобрался, но у меня получилось куча методов помеченых как depricated :)
Скорость правда не тестировал, но создается впечатление, что работает быстрее.
...
Рейтинг: 0 / 0
Формирование отчета
    #33032744
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а Range есть?
...
Рейтинг: 0 / 0
Формирование отчета
    #33032781
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ JEа Range есть?Есть. sheet.mergeCells(....).

---

mergeCells
public Range mergeCells(int col1,
int row1,
int col2,
int row2)
throws WriteException,
jxl.write.biff.RowsExceededExceptionMerges the specified cells. Any clashes or intersections between merged cells are resolved when the spreadsheet is written out

Parameters:
col1 - the column number of the top left cell
row1 - the row number of the top left cell
col2 - the column number of the bottom right cell
row2 - the row number of the bottom right cell
Returns:
the Range object representing the merged cells
Throws:
jxl.write..WriteException
jxl.write.biff.RowsExceededException
WriteException
...
Рейтинг: 0 / 0
Формирование отчета
    #33045291
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет.
ниже код программы в которой выходит ошибка

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
 import  org.apache.poi.hssf.usermodel.*;
 import  org.apache.poi.hssf.util.HSSFColor;
 import  java.io.IOException;
 import  java.io.FileOutputStream;
 import  java.io.BufferedWriter;
 import  java.io.FileWriter;
 import  org.apache.poi.hssf.util.Region;
 import  org.apache.poi.hssf.usermodel.contrib.HSSFRegionUtil;
 import  org.apache.poi.hssf.usermodel.contrib.HSSFCellUtil;

 public   class  TestExcel {
    // Данные для отчета
     static  String[] name = {"ИАЗ","филиал","ОАО","'Корпорация","'И'", "От.6","Служ.записка"};
     static  String[] tel = {"Зам.тех. директора ","ррррррррр","Копия цеху 25","ппппп"};

     public   static   void  main (String[] args) {
    HSSFWorkbook wb =  new  HSSFWorkbook();
    HSSFSheet sheet1 = wb.createSheet( "new sheet" );

    // Create a merged region
    HSSFRow row = sheet1.createRow( ( short )  1  );
    HSSFRow row2 = sheet1.createRow( ( short )  2  );
    HSSFCell cell = row.createCell( ( short )  1  );
    cell.setCellValue( "This is a test of merging" );
    Region region =  new  Region(  1 , ( short )  1 ,  4 , ( short )  4  );
    sheet1.addMergedRegion(region);

    // Set the border and border colors.
     final   short  borderMediumDashed = HSSFCellStyle.BORDER_MEDIUM_DASHED;
    HSSFRegionUtil.setBorderBottom(borderMediumDashed,region, sheet1, wb );
    HSSFRegionUtil.setBorderTop( borderMediumDashed,region, sheet1, wb );
    HSSFRegionUtil.setBorderLeft( borderMediumDashed,region, sheet1, wb );
    HSSFRegionUtil.setBorderRight( borderMediumDashed,region, sheet1, wb );
    HSSFRegionUtil.setBottomBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);
    HSSFRegionUtil.setTopBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);
    HSSFRegionUtil.setLeftBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);
    HSSFRegionUtil.setRightBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);

    // Shows some usages of HSSFCellUtil
    HSSFCellStyle style = wb.createCellStyle();
    style.setIndention(( short ) 4 );
    HSSFCellUtil.createCell(row,  8 , "This is the value of the cell", style);
    HSSFCell cell2 = HSSFCellUtil.createCell( row2,  8 , "This is the value of the cell");
    HSSFCellUtil.setAlignment(cell2, wb, HSSFCellStyle.ALIGN_CENTER);

    // Write the output to a file
    FileOutputStream fileOut;
     try  {
      fileOut =  new  FileOutputStream("D:\\work/Excel_word_java/testSZ.xls");
      wb.write(fileOut);
      fileOut.close();
      Runtime rt=Runtime.getRuntime();
      Process pr=rt.exec("C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE D:\\work\\Excel_word_java\\testSZ.xls");
    }
     catch  (IOException e) {
    }


ругается на
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 
    HSSFRegionUtil.setBorderBottom(borderMediumDashed,region, sheet1, wb );
    HSSFRegionUtil.setBorderTop( borderMediumDashed,region, sheet1, wb );
    HSSFRegionUtil.setBorderLeft( borderMediumDashed,region, sheet1, wb );
    HSSFRegionUtil.setBorderRight( borderMediumDashed,region, sheet1, wb );
    HSSFRegionUtil.setBottomBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);
    HSSFRegionUtil.setTopBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);
    HSSFRegionUtil.setLeftBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);
    HSSFRegionUtil.setRightBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);

и еще такой вопрос: какой символ нужно написать на месте пробела в имени директории что бы эту директорию открыть из программы?
например \\nt-obj-server\\Общие документы\\Служебные записки\\

сохранить в директорию 'Служебные записки' получается любой файл, а вот после сохранения от туда открыть не получается.
если использовать имена директорий без пробелов, то все работает.Тогда в этом случае нужно будет 1) переименовать все директории и 2) у почти 500 пользователей изменить ссылки на объект. Но это не желательно, т.е. в крайнем случае.
...
Рейтинг: 0 / 0
Формирование отчета
    #33047707
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу первого вопроса.
Избавляйся в своем коде от HSSFRegionUtil и HSSFCellUtil.
Используй лучше HSSFCellStyle.
Ругается он у тебя на то, что не может найти требуемых ему библиотек, которых для данных методов требуется достаточное количество.
А для HSSFCellStyle их не требуется, кроме самой библиотеки poi.

По поводу твоего второго вопроса.
Возьми "путь + имя файла" в кавычки. Пример из твоего кода:
Код: plaintext
Process pr=rt.exec("C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE \"D:\\work\\Excel_word_java\\testSZ.xls\"");
...
Рейтинг: 0 / 0
Формирование отчета
    #33050459
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с ковычками ни чего не получается
символ ~ советовали, но тоже не получается

Код: plaintext
Process pr=rt.exec("C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE \\nt-obj\\Общие~документы\\Служебные~записки\\testSZ.xls\"");
...
Рейтинг: 0 / 0
Формирование отчета
    #33050464
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может есть еще какие варианты по поводу пробелов в имени директории?
...
Рейтинг: 0 / 0
Формирование отчета
    #33051345
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modemс ковычками ни чего не получается
символ ~ советовали, но тоже не получается

Код: plaintext
Process pr=rt.exec("C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE \\nt-obj\\Общие~документы\\Служебные~записки\\testSZ.xls\"");
Ну ты бы хоть ветку отдельную создал что ли, че ты все в одну пихаешь.
По поводу твоего вопроса. Следуй за мной :)
1. В корне диска С создаем папку Temp
2. В папке c:/temp создаем папку "Директория с пробелами"
3. В Excel создаем файл и сохраняем его в папку c:/temp/Директория с пробелами/Файл с пробелами.xls
4. Запускаем следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 public   static   void  main(String[] args) {
        String dirname = "c:/temp/Директория с пробелами/";
        String filename = "Файл с пробелами.xls";
         try  {
            Runtime rt=Runtime.getRuntime();
            Process pr=rt.exec("c:/Program Files/Microsoft Office/OFFICE11/EXCEL.EXE " + "\"" + dirname + filename + "\"" );
        }
         catch  (Exception e) {
        }
    }
Работает?
...
Рейтинг: 0 / 0
Формирование отчета
    #33051350
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Не забудь путь к Excel поменять, если он у тебя в др. папке лежит :)
...
Рейтинг: 0 / 0
Формирование отчета
    #33051760
modem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
работает!!!

спасибо!!!
...
Рейтинг: 0 / 0
102 сообщений из 102, показаны все 5 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Формирование отчета
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]