Trying to convert xlsx file to csv, where after conversation the integer value has been converted to float in output file. But other string values are resulted as expected.
Below is the example
code:
Workbook workbook = null;
String ext = FilenameUtils.getExtension(inputFile.toString());
workbook = new XSSFWorkbook(fis);
int numberOfSheets = workbook.getNumberOfSheets();
Row row;
Cell cell;
// Iterate through each rows from first sheet
for (int i = 0; i < numberOfSheets; i++) {
Sheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
cell = cellIterator.next();
CellType type = cell.getCellType();
switch (type) {
case BOOLEAN:
data.append(cell.getBooleanCellValue() + ",");
break;
case NUMERIC:
data.append(cell.getNumericCellValue() + ",");
break;
case STRING:
data.append(cell.getStringCellValue() + ",");
break;
case BLANK:
data.append("" + ",");
break;
default:
data.append(cell + ",");
}
}
data.append('\n');
}
}
fos.write(data.toString().getBytes());
fos.close();