У меня есть метод Java writeToExcel (String sheetName, Map), который создает новый лист с именем «sheetName» в новом файле excel и записывает в него данные карты. Когда я вызываю метод с разными аргументами sheetName более одного раза, существующий лист заменяется последним вызываемым. Я хочу создавать новые листы в одном и том же файле excel каждый раз, когда метод вызывается с другим аргументом sheetName, без потери существующих листов. Вот мой код.Добавление листа в существующий файл excel с использованием Java и Apache POI
public static void writeToExcel(String fileName,Map<Integer,String[]> excelData){
String filePath="/Data/excel.xlsx";
XSSFWorkbook workbook=new XSSFWorkbook();
XSSFSheet sheet=workbook.createSheet(fileName);
Set<Integer> keySet=excelData.keySet();
int passedCount=0;
int failedCount=0;
int rowNo=0;
int cellNo=0;
Row row;
Cell cell;
try{
File file=new File(filePath);
FileOutputStream output=new FileOutputStream(file);
for(Integer key:keySet){
row=sheet.createRow(rowNo++);
String[] dataToWrite=excelData.get(key);
cellNo=0;
for(String str:dataToWrite){
cell=row.createCell(cellNo++);
cell.setCellValue(str);
}
}
workbook.write(output);
output.close();
workbook.close();
}
catch(FileNotFoundException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
}
Сообщение предоставляет [MCVE] (http://stackoverflow.com/help/mcve). Обязательно скопируйте код в новый проект * и убедитесь, что он компилируется и запускается, прежде чем публиковать его здесь. – user1803551