In my system, I have a class that creates an excel with some data.
Basically I read all String values from a variable ArrayList> and write them in excel cells.
public void writeData(Data data, int sheetNumber)
throws EncryptedDocumentException, InvalidFormatException, IOException {
org.apache.poi.ss.usermodel.Workbook workbook;
try {
workbook = WorkbookFactory.create(new File(path));
} catch (FileNotFoundException e) {
workbook = new HSSFWorkbook();
}
org.apache.poi.ss.usermodel.Sheet sheet;
try {
sheet = workbook.createSheet("Sheet" + sheetNumber);
} catch (IllegalArgumentException e) {
sheet = workbook.getSheet("Sheet" + sheetNumber);
}
int dataListSize = data.getData().size();
for (int i = 0; i < dataListSize; i++) {
Row row = sheet.createRow(i);
int rowSize = data.getData().get(i).size();
for (int j = 0; j < rowSize; j++) {
row.createCell(j);
row.getCell(j).setCellValue(String.valueOf(data.getData().get(i).get(j)));
}
}
FileOutputStream fos = null;
try {
fos = new FileOutputStream(new File(path));
workbook.write(fos);
} catch (IOException e) {
e.printStackTrace();
} finally {
workbook.close();
if (fos != null) {
try {
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
The code works fine as far as I know, I develop on Ubuntu and always try the code here first, the created excels are fine, and I have no problem at all.
When I take one of these to Windows (XP and 7, tried on both), I can't open any of them using Microsoft Excel.
Does anyone have any experience with this?
Thank you.