Freddy Kresna
Membuka File Excel
Ini listing codenya beserta sedikit dokumentasi program :
package poi;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JTable;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import java.awt.*;
import java.awt.event.*;
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 OpenExcel extends JFrame{
private static final long serialVersionUID = 1L;
private JMenuBar menuBar;
private JMenu menu;
private JMenuItem menuItem;
private JScrollPane scrollPane;
public OpenExcel()
{
super("Demo membuka file Excel");
gui();
}
public void gui()
{
menuBar = new JMenuBar();
menu = new JMenu("Menu");
menuItem = new JMenuItem("Open");
this.setLayout(new BorderLayout());
this.add(menuBar, BorderLayout.NORTH);
menuBar.add(menu);
menu.add(menuItem);
menuItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
openActionPerformed(ae);
}
});
scrollPane = new JScrollPane();
this.add(scrollPane, BorderLayout.CENTER);
this.setSize(500, 300);
}
private void openActionPerformed(ActionEvent ae)
{
JFileChooser chooser = new JFileChooser();
if (chooser.showOpenDialog(this)!=0) return;
POIFSFileSystem fs;
try {
fs = new POIFSFileSystem(new FileInputStream(chooser.getSelectedFile()));
HSSFWorkbook wb = new HSSFWorkbook(fs);
//mengambil sheet pertama
HSSFSheet sheet = wb.getSheetAt(0);
//deklarasi table dengan baris sejumlah baris terakhir sheet dan kolom sebanyak 6
Object[][] cells = new Object[sheet.getLastRowNum()][6];
//Pemberian nama kolom
String[] columnNames = {"kolom 1",
"kolom 2",
"kolom 3",
"kolom 4",
"kolom 5",
"kolom 6"};
//Perulangan sebanyak baris terakhir sheet
for (int i =0;i<sheet.getLastRowNum();i++)
{
//Mengambil Row ke i
HSSFRow row = sheet.getRow(i);
//perulangan sebanyak jumlah kolom
for (short j = 0;j < 6;j++)
{
//mengambil cell ke j
HSSFCell cell = row.getCell(j);
//mengambil tipe data String dari cell tersebut, jika memiliki tipe data lain
//
maka harus dilakukan pengecekan dengan cara cell.getType()
String text = cell.getStringCellValue();
cells[i][j] = text;
}
}
JTable table = new JTable(cells,columnNames);
scrollPane.setViewportView(table);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
public static void main(String[] args)
{
OpenExcel ox = new OpenExcel();
ox.setVisible(true);
}
}
http://poi.apache.org/hssf/
Semoga bermanfaat :)
Posted at 09:36AM Jul 27, 2007 by Freddy Kresna Tjoenedi in General | Comments[3]