powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / POI передача значений Font
3 сообщений из 3, страница 1 из 1
POI передача значений Font
    #38188089
доброго времени суток.
Стоит задача, чтобы из одного класса передать значения FONT в другой. Со Стилями разобрался использовал метод cloneStyleFrom. А вот у Font такого не нашел, хотя и ошибку он не выдает.
Код класса откуда берем

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class FontFormat {
    
        public XSSFFont FontTimes10Bold() {
           //XSSFCellStyle style = workBook.createCellStyle();
          //  System.out.println("1");
           XSSFFont font   = workBook.createFont();
           font.setFontHeightInPoints((short) 13);
           font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
           font.setFontName("Times New Roman");
           
           return(font);
    }
        
    public XSSFWorkbook workBook = new XSSFWorkbook();
    //private XSSFFont font   = workBook.createFont();
}



А вот сюда хочу вставить, это font.

Код: java
1.
2.
3.
4.
5.
           FontFormat font4 =  new FontFormat();
            f_Data2.getCTFont(font4.FontTimes10Bold())
            cs_Data_StringB.setFont(f_Data2);
            cs_Data_StringB.setWrapText(true);
            cs_Data_StringB.setDataFormat((short)0);



С помощью System.out.println(f_Data2.getFontName()); смотрел что возвращает, все вроде правильно, но вот в итоге форматирование берет из Font с индексом 1, если добавить еще System.out.println, с еще какими либо параметрами, то данные берет уже из font с более высоким индексом. Понимаю что надо как то скопировать или склонировать, но не вижу таких методов. Кто что может предложить по данному вопросу? С уважением пользователь ресурса.
...
Рейтинг: 0 / 0
POI передача значений Font
    #38188204
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из приведенного кода трудно понять, как всё это применяется в листе excel.
Чтобы использовать фонт, надо создать стиль и применить его:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
	private HSSFWorkbook wb;
...
		HSSFCellStyle style = wb.createCellStyle();
		HSSFFont font = wb.createFont();
		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
		style.setFont(font);
...
		HSSFCell cell = ...;
		cell.setCellStyle(style);


Так должно работать.
А тут видим что-то загадочное:
Код: java
1.
2.
3.
4.
5.
6.
           FontFormat font4 =  new FontFormat();
            f_Data2.getCTFont(font4.FontTimes10Bold())
            cs_Data_StringB.setFont(f_Data2);

//хотя напрашивается более простое:
            cs_Data_StringB.setFont(font4.FontTimes10Bold());
...
Рейтинг: 0 / 0
POI передача значений Font
    #38188942
Задача заключалась в том чтобы font создавать в отдельном классе и отдельной книги.
При работе в пределах одного класса и одной книги никаких нареканий не возникало при работе.
Данную проблему решили тем, что теперь передаем в класс где формируются нужные нам font-ы саму книгу, и все у нас работает.
Выглядит теперь вот так.
Код: java
1.
2.
3.
4.
            FontFormat font4 =  new FontFormat();
            cs_Data_StringB.setFont(font4.FontTimes10Bold(workBook));
            cs_Data_StringB.setWrapText(true);
            cs_Data_StringB.setDataFormat((short)0);



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


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