Olá galera, estou com difuculdades para trabalhar coma API, sou iniciante em programaçao java mais tenho que desenvolver um program que le os dados da planilha do excel
e atualiza o banco de dados ja tentei utilizar Jexcel, tambem com apache mais na hora de executar ele esta caindo sempre na condição catch se alguem poder me ajudar agradeço.
Aqui está o codigo.
aqui está o codigo utilizando Jexcel
import[/code] java.io.File;
import javax.swing.JOptionPane;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class Teste02 {
public void LerExcel1() throws Exception
{
Workbook [color=green]workbook[/color] = Workbook.getWorkbook(new File(“Teste.xls”));
//le a quantidade de linhas da planilha.
Sheet sheet = workbook.getSheet(0);
int linhas = sheet.getRows();
int colunas = sheet.getColumns();
try{
for(int l = 0; l < linhas; l++)
{
for(int c = 0; c < colunas; c++)
{
Cell a1 = sheet.getCell(l, c);
String as1 = a1.getContents();
JOptionPane.showMessageDialog(null, as1);
}
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "resp");
}
workbook.close();
}
}
este programa é apenas um teste para q eu possa entender e realmente faser o aplicativo.
Desde já agradeço.
Se você quiser, a alternativa é o Apache POI , que trabalha não só com o Excel, mas com a suíte do MS Office como um todo.
[]'s
Fexx
Março 13, 2012, 8:26am
#3
Já fiz algo parecido, veja o codigo.
public void lerExcel() {
Workbook workbook; // a Planilha
try {
String p = null;
String c = null;
workbook = Workbook.getWorkbook(new File(arquivo)); // Pegando o
// arquivo(diretório do arquivo)
Sheet sheet = workbook.getSheet(0); // pegando a aba 0 da planilha
int linhas = sheet.getRows(); // linha da planilha
informacao.setText("inserindo dados...");
TebelavendasDAO dao = new TebelavendasDAO();
PrecosDescontos pd = new PrecosDescontos();
for (int i = 0; i < linhas; i++) {
Cell codigo = sheet.getCell(0, i); // coluna 0 linha 0
Cell preco = sheet.getCell(1, i); // coluna 1 linha 0
p = preco.getContents();
c = codigo.getContents();
pd.setPreco_18(p);
pd.setCodigoInterno(c);
dao.alterarPrecosDescontos(pd);
}
dao.descontos();//desconto dos preços.
workbook.close();
} catch (jxl.read.biff.BiffException e) {
JOptionPane.showMessageDialog(null, "Tipo de arquivo inválido",
"Atenção", JOptionPane.WARNING_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,
"Não foi possivel inserir os dados : " + e.getMessage());
e.printStackTrace();
}
}
Abraços.
Fica com DEUS.
Fexx, agradeço pela ajuda dei uma simplificada no seu codigo apenas pra ler já que vc esta alterando e inserindo mais não retorna nd cri uma JOPM para rwetornar a mensagem com a strng da cálula sera que não esta encontrando o caminho da minha planilha:
import java.io.File;
import javax.swing.JOptionPane;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class Teste1 {
public void lerExcel() {
Workbook workbook;
try {
String p;
String c;
workbook = Workbook.getWorkbook(new File("Teste.xls")); // Pegando o
// arquivo(diretório do arquivo)
Sheet sheet = workbook.getSheet(0); // pegando a aba 0 da planilha
int linhas = sheet.getRows(); // linha da planilha
for (int i = 0; i < linhas; i++) {
Cell codigo = sheet.getCell(0, i); // coluna 0 linha 0
Cell preco = sheet.getCell(1, i); // coluna 1 linha 0
p = preco.getContents();
c = codigo.getContents();
JOptionPane.showMessageDialog(null, " valor de p" + p + "valor de c" + c);
}
workbook.close();
} catch (jxl.read.biff.BiffException e) {
JOptionPane.showMessageDialog(null, "Tipo de arquivo inválido",
"Atenção", JOptionPane.WARNING_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,
"Não foi possivel inserir os dados : " + e.getMessage());
e.printStackTrace();
}
}
}
Abrço Fik com Deus tbm;
Fexx
Março 13, 2012, 9:20am
#5
Não está retornando, pq eu criei um JLabel em meu form, apenas para informar se inseriu com sucesso, mas ele não se encontra nesse método.
No meu caso eu usei um JfileChooser , mas se está fazendo alguns teste, indica o caminho todo do arquivo, algo como :
C:\Users\Fernando\Desktop\ids das tabelas.xls
lembrando, que as barras vc teria que inverter para /
tenta ai.
Abraços.
Cara valeu mesmo consegui faser as leituras agora e continuar o programa, qualquer duvida vou recorrer a vocês de novo.
Que Deus Abençõe Vcs Brigadão
Fexx
Março 13, 2012, 10:01am
#7
É isso ai cara.
Abraços.
E Que DEUS, abençoe você também.