Last active
November 2, 2022 08:37
-
-
Save Munawwar/924389 to your computer and use it in GitHub Desktop.
Java - Apache POI - Convert XLS/XLSX to CSV
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Dependencies: Apache POI Library from http://poi.apache.org/ | |
*/ | |
package poi_excels; | |
import java.io.FileInputStream; | |
import java.io.FileNotFoundException; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.util.logging.Level; | |
import java.util.logging.Logger; | |
import org.apache.poi.openxml4j.exceptions.InvalidFormatException; | |
import org.apache.poi.ss.usermodel.Row; | |
import org.apache.poi.ss.usermodel.Sheet; | |
import org.apache.poi.ss.usermodel.Workbook; | |
import org.apache.poi.ss.usermodel.WorkbookFactory; | |
public class ExcelReading { | |
public static void echoAsCSV(Sheet sheet) { | |
Row row = null; | |
for (int i = 0; i <= sheet.getLastRowNum(); i++) { | |
row = sheet.getRow(i); | |
for (int j = 0; j < row.getLastCellNum(); j++) { | |
System.out.print("\"" + row.getCell(j) + "\";"); | |
} | |
System.out.println(); | |
} | |
} | |
/** | |
* @param args the command line arguments | |
*/ | |
public static void main(String[] args) { | |
InputStream inp = null; | |
try { | |
inp = new FileInputStream("myxlsx/sample.xlsx"); | |
Workbook wb = WorkbookFactory.create(inp); | |
for(int i=0;i<wb.getNumberOfSheets();i++) { | |
System.out.println(wb.getSheetAt(i).getSheetName()); | |
echoAsCSV(wb.getSheetAt(i)); | |
} | |
} catch (InvalidFormatException ex) { | |
Logger.getLogger(ExcelReading.class.getName()).log(Level.SEVERE, null, ex); | |
} catch (FileNotFoundException ex) { | |
Logger.getLogger(ExcelReading.class.getName()).log(Level.SEVERE, null, ex); | |
} catch (IOException ex) { | |
Logger.getLogger(ExcelReading.class.getName()).log(Level.SEVERE, null, ex); | |
} finally { | |
try { | |
inp.close(); | |
} catch (IOException ex) { | |
Logger.getLogger(ExcelReading.class.getName()).log(Level.SEVERE, null, ex); | |
} | |
} | |
} | |
} |
Right, updated the gist. Ref
Hello,
What are your terms of usage for this code?
Thank you!
Take a look at this: https://stackoverflow.com/questions/17345696/convert-xlsx-to-csv-with-apache-poi-api
is any API(open source) to create csv file with one line(without looping data)?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
getLastRowNum() returns a zero based number, so it should be "<=" in the for loop