powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Формирование отчета
25 сообщений из 102, страница 1 из 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
25 сообщений из 102, страница 1 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Формирование отчета
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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