Как скопировать один лист книги в другой лист книги, используя Apache POI и Java - PullRequest
15 голосов
/ 26 июля 2010

У меня есть один файл Excel с одним листом (абстрактная модель).Теперь я хочу скопировать лист в другую существующую книгу.Как я могу это сделать?

Ответы [ 2 ]

5 голосов
/ 26 июля 2010

Помогает немного погуглить:

http://www.coderanch.com/t/420958/open-source/Copying-sheet-excel-file-another

.. и, рассмотрите возможность удаления вашей электронной почты здесь, форум предназначен для обмена обсуждениями, чтобы помочь всем, кто оступилсяна подобные проблемы, конечно, не для оффлайн / частных обсуждений.

0 голосов
/ 12 апреля 2018

Для обработки обычных стилей и данных мы можем перебирать каждую ячейку.
Но если у нас есть ячейка с включенной формулой, не редактируемые ячейки, объединенная ячейка, то это лучшее решение для:
Я пробовал что-то вроде копирования листов, но это не сработало.
Кроме того, мне нужно скопировать лист, на котором есть несколько нередактируемых ячеек и ячеек с поддержкой формул.

Это решение сработало для меня:
1) скопировать всю рабочую книгу
2) удалить ненужные листы 3) добавьте свои новые листы в вышеприведенную книгу

//input source excel file which contains sheets to be copied
file = new FileInputStream("C:\\SamepleTemplate.xlsx");
workbookinput = new XSSFWorkbook(file);

//output new excel file to which we need to copy the above sheets
//this would copy entire workbook from source
XSSFWorkbook workbookoutput=workbookinput;

//delete one or two unnecessary sheets, you can delete them by specifying the sheetnames
workbook.removeSheetAt(workbook.getSheetIndex(workbook.getSheet(" your sheet name ")));

//if you want to delete more sheets you can use a for to delete the sheets
for (int index=0;index<=5;index++)
{
   workbook.removeSheetAt(index);
}

//To write your changes to new workbook
FileOutputStream out = new FileOutputStream("C:\\FinalOutput.xlsx");
workbookoutput.write(out);
out.close();
...