powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Apache Poi модификация ячейки в существующей книге
5 сообщений из 5, страница 1 из 1
Apache Poi модификация ячейки в существующей книге
    #39411512
Mari.P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дано: книга Excel 2007, где надо произвести изменения в ячейках.
Использую Apachi Poi XSSFWorkbook

С чтением файла все ОК, проблема с записью числа в ячейку:
Код: java
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.
FileInputStream inputStream = new FileInputStream(new File(excelFilePath));
    	      
 	        workbook = new XSSFWorkbook(inputStream);
                Sheet LastSheet = workbook.getSheet("form1");
                 styleFloat.setDataFormat(formatFloat.getFormat("0.0##"));
    	         iterator = LastSheet.iterator();
                     i=0; 
   	             while (iterator.hasNext())
   	             {
   	               Row nextRow = iterator.next();
   	               Iterator<Cell> cellIterator = nextRow.cellIterator();
                       j=0;  	        
    	               while (cellIterator.hasNext())
   	               {
   	                
                         Cell cell = cellIterator.next();
                         if(<условие модификации ячейки>)
                          {cell.setCellStyle(styleFloat);
    			   cell.setCellValue(val2);
                          } 
                         j++;
                       
                        }
                        i++;
                       }   



сваливается с ошибкой:
Код: java
1.
This Style does not belong to the supplied Workbook Stlyes Source. Are you trying to assign a style from one workbook to the cell of a differnt workbook?


не нравится ей cell.setCellStyle(styleFloat), а что здесь неверно, подскажите плиз уважаемые профессионалы?
...
Рейтинг: 0 / 0
Apache Poi модификация ячейки в существующей книге
    #39411569
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Откуда тут уважаемые профессионалы. Но текст сообщения об ошибке вроде понятный: стиль styleFloat не содержится в книге workbook. Значит, надо его туда добавить. Можно попробовать применить workbook.createStyle () с последующим style.cloneStyleFrom ().
...
Рейтинг: 0 / 0
Apache Poi модификация ячейки в существующей книге
    #39411634
Mari.P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan M,

так я так и делаю в начале проги:
Код: java
1.
2.
3.
private XSSFWorkbook workbook = new XSSFWorkbook(); 
    	private XSSFCellStyle styleTitle = workbook.createCellStyle();
    	private XSSFCellStyle styleFloat = workbook.createCellStyle();



а style.cloneStyleFrom (). зачем?
по сути я хочу преобразовать ячейку во float, если юзер по недомыслию сделал ее текстовой,
чтобы записать туда число.
...
Рейтинг: 0 / 0
Apache Poi модификация ячейки в существующей книге
    #39411637
Mari.P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот так работает, но это не то, что мне надо:
Код: java
1.
2.
cell.setCellStyle(cell.getCellStyle());
	      cell.setCellValue(val2);
...
Рейтинг: 0 / 0
Apache Poi модификация ячейки в существующей книге
    #39411675
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mari.Pя хочу преобразовать ячейку во float, если юзер по недомыслию сделал ее текстовой,

стиль влияет только на показ содержимого. Тип клетки изменяется (в любой момент) с помощью setCellType,

например, cell.setCellType (CellType.NUMERIC), где тип NUMERIC используется также для дат. Для текста - CellType.STRING.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Apache Poi модификация ячейки в существующей книге
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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