Witam, mam problem z danymi, które wyciągam z excela. Używam do tego biblioteki jxl. Wszystko ładnie się wyciąga gdy chce to wrzucić na konsolę, jednak nie mogę wrzucić zawartości komórek bezpośrednio do jtable... Może ktoś już miał taki problem i pomoże... Będę wdzięczny. Poniżej zamieszczam kod:
package pl.wydania.pp;
import java.io.File;
import java.io.IOException;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class Wydania extends javax.swing.JFrame {
private String inputFile;
private int rowekXls;
private int pierwotnyRowekXls;
private String indeks;
private String nazwa;
private String ilosc;
DefaultTableModel modelDane = new DefaultTableModel() {
public Class getColumnClass(int column) {
for (int row = 0; row < getRowCount(); row++) {
Object o = getValueAt(row, column);
if (o != null) {
return o.getClass();
}
}
return Object.class;
}
public boolean isCellEditable(int row, int column) {
return false;
}
};
public Wydania() {
initComponents();
}
private void initComponents() {
buttonWstawDane = new javax.swing.JButton();
scrollDane = new javax.swing.JScrollPane();
tableDane = new javax.swing.JTable(modelDane);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Dane");
buttonWstawDane.setText("Wstaw dane");
buttonWstawDane.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
try {
buttonWstawDaneActionPerformed(evt);
} catch (IOException e) {
e.printStackTrace();
}
}
});
scrollDane.setViewportView(tableDane);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout
.setHorizontalGroup(layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout
.createSequentialGroup()
.addContainerGap()
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING,
false)
.addComponent(
buttonWstawDane)
.addComponent(
scrollDane,
javax.swing.GroupLayout.PREFERRED_SIZE,
436,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(13, 13, 13)));
layout.setVerticalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addContainerGap().addComponent(
buttonWstawDane).addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(scrollDane,
javax.swing.GroupLayout.PREFERRED_SIZE, 298,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)));
pack();
}
private void buttonWstawDaneActionPerformed(java.awt.event.ActionEvent evt)
throws IOException {
Wydania dane = new Wydania();
dane.setInputFile("c:/temp/dane.xls");
dane.czytajDane();
}
public void setInputFile(String inputFile) {
this.inputFile = inputFile;
}
public void czytajDane() throws IOException {
File inputWorkbook = new File(inputFile);
Workbook w;
try {
w = Workbook.getWorkbook(inputWorkbook);
Sheet sheet = w.getSheet(0);
for (int k = 0; k < sheet.getRows(); k++) {
Cell cell = sheet.getCell(0, k);
if (cell.getContents().equals("[Lines]")) {
pierwotnyRowekXls = cell.getRow();
}
}
for (rowekXls = pierwotnyRowekXls; rowekXls < sheet.getRows(); rowekXls++) {
Cell cellIndeks = sheet.getCell(0, rowekXls);
Cell cellNazwa = sheet.getCell(1, rowekXls);
Cell cellIlosc = sheet.getCell(2, rowekXls);
indeks = cellIndeks.getContents().toString();
nazwa = cellNazwa.getContents().toString();
ilosc = cellIlosc.getContents().toString();
if (cellIndeks.getType() == CellType.NUMBER
|| cellIlosc.getType() == CellType.NUMBER
|| cellNazwa.getType() == CellType.LABEL) {
if (cellNazwa.getContents().contains("HM")) {
} else {
modelDane.addRow(new Object[] { indeks, nazwa,
ilosc });
System.out.println(indeks + " " + nazwa + " " + ilosc);
}
}
}
} catch (BiffException e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Wydania().setVisible(true);
}
});
}
private javax.swing.JButton buttonWstawDane;
private javax.swing.JScrollPane scrollDane;
private javax.swing.JTable tableDane;
}