Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > POI, Excel, как скопировать часть листа


Автор: Yauhen 23.6.2008, 16:15
У меня возникла следующая проблема. Есть шаблон, сделанный в Excel, в нем достаточно большая таблица. Мне нужно сделать N копий этой таблицы на одном листе Excel. 
Подскажите, пожалуйста, можно ли это сделать при помощи POI, так чтобы не нужно было циклами перебирать все ячейки и копировать их поодной? И если можно, то как?

Автор: Orange 23.6.2008, 18:38
Копируй ряды:
Код

InputStream input = POIExample.class.getResourceAsStream( "qa.xls" );
POIFSFileSystem fs = new POIFSFileSystem( input );
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
            
Iterator rows = sheet.rowIterator(); 
  while( rows.hasNext() ) 
     HSSFRow row = (HSSFRow) rows.next();
 


Добавлено через 1 минуту и 53 секунды
Вот это еще посмотри:
http://www.apache-poi.com.ua/org/apache/poi/hssf/model/Sheet.html#cloneSheet()

Автор: Yauhen 24.6.2008, 12:53
В этом как раз и проблема. Как копировать ряды? 

У класса HSSFSheet нет методов для вставки рядов, можно только создавать новые (createRow(int rownum) ). 
Медод для вставки есть у класса Sheet (addRow(RowRecord row) ), однако из HSSFSheet Sheet получить не получится т.к. метод getSheet() protected. Точно так же как и из HSSFRow не удается получить RowRecord, т.к. метод getRowRecord() protected.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)