Olá meus caros!
Bom, primeiramente tenho algumas dúvidas, que agradeceria muito se me ajudassem:
- O Apache POI manipula XLSX, como faço? Tem exemplo? Só consigo manipular XLS
- Para ler um XLS (e XLSX) e gravar um CSV, tenho que gravar o conteúdo do XLS em um arquivo txt e salvar como CSV, ou ele tem alguma funçao para converter?
Bom, após as dúvidas, vem o que mais me enteressa no momento.
Segue meu código, após ele as dúvidas:
String corrigido_aux = null;
int cont =0;
FileWriter x = new FileWriter("c:/testefinal.txt",true);
InputStream inputstream = null;
inputstream = new FileInputStream(new File("c:/testefinal.xls"));
POIFSFileSystem fileSystem = null;
fileSystem = new POIFSFileSystem (inputstream);
HSSFWorkbook workBook = new HSSFWorkbook (fileSystem);
HSSFSheet sheet = workBook.getSheetAt (0);
Iterator<Row> rows = sheet.rowIterator();
while (rows.hasNext()) {
Row row = rows.next();
Iterator<Cell> cells = row.cellIterator ();
while (cells.hasNext()) {
Cell cell = cells.next();
String valorCelula = null;
if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING){
valorCelula = cell.getStringCellValue();
cont=cont++;
}
else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){
valorCelula = String.valueOf(cell.getNumericCellValue());
cont=cont++;
}
String corrigido=null;
corrigido = valorCelula;
//cell.setCellValue(corrigido);
System.out.println(corrigido);
if (corrigido_aux == null){
corrigido_aux = corrigido;
} else{
corrigido_aux =corrigido_aux+","+corrigido;
if (cont == 15){
x.write(corrigido_aux+"\n");
corrigido_aux = null;
}
}
/*try{
// o true significa q o arquivo será constante
FileWriter x = new FileWriter("c:/testefinal.csv",true);
//conteudo += "\n\r"; // criando nova linha e recuo no arquivo
x.write(corrigido+","); // armazena o texto no objeto x, que aponta para o arquivo
x.close(); // cria o arquivo
System.out.println("Arquivo gravado com sucesso");
}
catch(Exception e){
System.out.println("Arquivo NAO FOI gravado !");
}*/
}
x.close();
System.out.println("Arquivo gravado com sucesso");
}
Com o trecho acima, estou tentando ler de um XLS e gravar em um TXT que posteriormente iria (tentaria) converter para CSV.
Porém o meu txt está vindo vazio… por que?