Pessoal, estou tendo problemas para determinar o fim de um arquivo xls que estou lendo usando a API apache POI.
Alguem que já tenha trabalhado com essa APi poderia me dar um exemplo de leitura de um arquivo onde vc desconheça o numero de linhas, mas conheça o total de colunas, e como eu determino o EOF(end of file) dele, ajudaria muito um exemplo em código, bem resumido obrigado.
Boa tarde !! Vou mandar um exemplo q fiz o segredo ta no for… e nos comandos : sheet.getFirstRowNum() sheet.getLastRowNum()
public int upDateTabelaExel(){
/**
* Metodo para leirura de uma tabela do Excel
* Jakarta POI API
* @author Fredi D'Agostin
* @version 1.0
*/
int total=0;
final String fileToBeRead="\\\\192.168.2.52\\atualizacao\\Read.xls";
try{
// Create a work book reference
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
// Refer to the sheet. Put the Name of the sheet to be referred from
// Alternative you can also refer the sheet by index using getSheetAt(int index)
HSSFSheet sheet = workbook.getSheet("Sheet1");
int inicio = sheet.getFirstRowNum();
int final1 = sheet.getLastRowNum();
int cont = 0;
Conect conexao = new Conect();
for(cont=inicio;cont<final1;cont++){
HSSFRow row = sheet.getRow(cont);
HSSFCell cell = row.getCell((short)0);
HSSFRow row2 = sheet.getRow(cont);
HSSFCell cell2 = row2.getCell((short)1);
HSSFRow row3 = sheet.getRow(cont);
HSSFCell cell3 = row3.getCell((short)2);
Date dt = new Date();
dt = cell3.getDateCellValue();
String dataBanco = new SimpleDateFormat("yyyy-MM-dd").format(dt);
String placa = cell.getStringCellValue().toString().trim();
int km = (int) cell2.getNumericCellValue();
Statement st = conexao.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
Statement st2 = conexao.conn.createStatement();
String sqlSelect = "select placa from cveic where placa ='"+placa+"'";
ResultSet rs = st.executeQuery(sqlSelect);
String placaRes = "";
while(rs.next()){
placaRes = rs.getString("placa");
}
if(placaRes.equalsIgnoreCase(placa)){
String update = "UPDATE CVEIC SET HODOMETROTOTAL ="+km+
", DATAALTERACAO='"+dataBanco+"' WHERE PLACA ='"+
placaRes+"'";
st2.executeUpdate(update);
total++;
}
}
conexao.exitConect();
}catch(Exception e) {
System.out.println("!! Erro !! xlRead() : " + e );
}
Bom, o final1 seria a marcação da utlima linha do arquivo que tenha dados armazenados?
Ourta coisa, meu programa está com um comportamento estranho, eu tenho um arquivo com 150 itens,nd ele chega no 150, ele ainda le mais uns 100 não sei da onde!
O código nao tenho cmo postar agora, mas se tiver uma idéia do q pode ser me avise.
[quote=pirado18]Bom, o final1 seria a marcação da utlima linha do arquivo que tenha dados armazenados?
Ourta coisa, meu programa está com um comportamento estranho, eu tenho um arquivo com 150 itens,nd ele chega no 150, ele ainda le mais uns 100 não sei da onde!
O código nao tenho cmo postar agora, mas se tiver uma idéia do q pode ser me avise.