Escribir datos de lista en excel, Java

public static void escribirExcel(ArrayList<ArrayList<String>> lista){
File archivoXLS = new File("Practica1Salidas.xls");

if(archivoXLS.exists()) archivoXLS.delete();

try {
archivoXLS.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Workbook libro = new HSSFWorkbook();

try {
FileOutputStream archivo = new FileOutputStream(archivoXLS);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Sheet hoja = libro.createSheet("1");

for (int i = 0; i < lista.size(); i++) {
Row row = hoja.createRow(i);
for (int j = 0; j < lista.get(i).size(); j++) {
Cell cell = row.createCell(j);
cell.setCellValue(lista.get(i).get(j));
}
}


try {
OutputStream out = new FileOutputStream("Practica1Salidas.xls");
libro.write(out);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}