Pessoal,
estou usando o POI para preencher uma planilha excel 2003 (vários sheets). Pesquisando por erros que a planilha passou a apresentar depois de alterada através POI, fiz o seguinte teste :
package test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class testPOI {
private static HSSFSheet resultSheet = null;
public static void main(String[] args) {
try {
String inFile = "src/test/templateOrign.xls";
String outFile = "src/test/templateRewrited.xls";
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(inFile));
HSSFWorkbook workBook = new HSSFWorkbook(fs);
FileOutputStream fileOut = new FileOutputStream(outFile);
workBook.write(fileOut);
fileOut.close();
} catch (FileNotFoundException e1) {// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected static HSSFCell getCell(int col, int row) {
HSSFRow xRow = resultSheet.getRow(row);
HSSFCell cell = xRow.getCell((short)col);
return cell;
}
}
Pelo código estou apenas abrindo o arquivo e o salvando em outro. Procurando por erros na planilha “gerada”, achei diversas células que tem agora fórmulas que nada tem a ver com a original. Não consigui ainda identifcar um padrão. Exemplo de uma célula:
Fórmula original : =IF(ISNUMBER((D44D43)/(D44+D43));(D44D43)/(D44+D43);"")
Fórmula resultante : =D40-D36
Alguém já teve algum problema parecido ?
Excel 2003
Java 5.0
POI 3.0.2