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


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