Apache POI - Spreadsheet

Bab ini menjelaskan cara membuat spreadsheet dan memanipulasinya menggunakan Java. Spreadsheet adalah halaman dalam file Excel; itu berisi baris dan kolom dengan nama tertentu.

Setelah menyelesaikan bab ini, Anda akan dapat membuat spreadsheet dan melakukan operasi baca di dalamnya.

Buat Spreadsheet

Pertama-tama, mari kita membuat spreadsheet menggunakan kelas referensi yang dibahas di bab sebelumnya. Dengan mengikuti bab sebelumnya, buat workbook terlebih dahulu dan kemudian kita bisa melanjutkan dan membuat lembar.

Cuplikan kode berikut digunakan untuk membuat spreadsheet.

//Create Blank workbook
XSSFWorkbook workbook = new XSSFWorkbook();

//Create a blank spreadsheet
XSSFSheet spreadsheet = workbook.createSheet("Sheet Name");

Baris di Spreadsheet

Spreadsheet memiliki tata letak kisi. Baris dan kolom diidentifikasi dengan nama tertentu. Kolom diidentifikasi dengan huruf dan baris dengan angka.

Potongan kode berikut digunakan untuk membuat baris.

XSSFRow row = spreadsheet.createRow((short)1);

Tulis di Spreadsheet

Mari kita perhatikan contoh data karyawan. Disini data pegawai diberikan dalam bentuk tabel.

Id Emp Nama Emp Penunjukan
Tp01 Gopal Manajer teknis
TP02 Manisha Pembaca Bukti
Tp03 Masthan Penulis teknis
Tp04 Satish Penulis teknis
Tp05 Krishna Penulis teknis

Kode berikut digunakan untuk menulis data di atas ke dalam spreadsheet.

import java.io.File;
import java.io.FileOutputStream;

import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Writesheet {
   public static void main(String[] args) throws Exception {

      //Create blank workbook
      XSSFWorkbook workbook = new XSSFWorkbook(); 

      //Create a blank sheet
      XSSFSheet spreadsheet = workbook.createSheet(" Employee Info ");

      //Create row object
      XSSFRow row;

      //This data needs to be written (Object[])
      Map < String, Object[] > empinfo = 
      new TreeMap < String, Object[] >();
      empinfo.put( "1", new Object[] { "EMP ID", "EMP NAME", "DESIGNATION" });
      empinfo.put( "2", new Object[] { "tp01", "Gopal", "Technical Manager" });
      empinfo.put( "3", new Object[] { "tp02", "Manisha", "Proof Reader" });
      empinfo.put( "4", new Object[] { "tp03", "Masthan", "Technical Writer" });
      empinfo.put( "5", new Object[] { "tp04", "Satish", "Technical Writer" });
      empinfo.put( "6", new Object[] { "tp05", "Krishna", "Technical Writer" });
      
      //Iterate over data and write to sheet
      Set < String > keyid = empinfo.keySet();
      int rowid = 0;

      for (String key : keyid) {
         row = spreadsheet.createRow(rowid++);
         Object [] objectArr = empinfo.get(key);
         int cellid = 0;

         for (Object obj : objectArr) {
            Cell cell = row.createCell(cellid++);
            cell.setCellValue((String)obj);
         }
      }

      //Write the workbook in file system
      FileOutputStream out = new FileOutputStream(new File("Writesheet.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("Writesheet.xlsx written successfully");
   }
}

Simpan kode Java di atas sebagai Writesheet.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac Writesheet.java
$java Writesheet

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan file Excel bernama Writesheet.xlsx di direktori Anda saat ini dan Anda akan mendapatkan output berikut di command prompt.

Writesheet.xlsx written successfully

Itu Writesheet.xlsx File terlihat sebagai berikut.

Baca dari Spreadsheet

Mari kita perhatikan file excel di atas bernama Writesheet.xslxsebagai masukan. Perhatikan kode berikut; ini digunakan untuk membaca data dari spreadsheet.

import java.io.File;
import java.io.FileInputStream;

import java.util.Iterator;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Readsheet {
   static XSSFRow row;
   public static void main(String[] args) throws Exception {
      FileInputStream fis = new FileInputStream(new File("WriteSheet.xlsx"));
      
      XSSFWorkbook workbook = new XSSFWorkbook(fis);
      XSSFSheet spreadsheet = workbook.getSheetAt(0);
      Iterator < Row >  rowIterator = spreadsheet.iterator();
      
      while (rowIterator.hasNext()) {
         row = (XSSFRow) rowIterator.next();
         Iterator < Cell >  cellIterator = row.cellIterator();
         
         while ( cellIterator.hasNext()) {
            Cell cell = cellIterator.next();
            
            switch (cell.getCellType()) {
               case Cell.CELL_TYPE_NUMERIC:
                  System.out.print(cell.getNumericCellValue() + " \t\t ");
                  break;
               
               case Cell.CELL_TYPE_STRING:
                  System.out.print(
                  cell.getStringCellValue() + " \t\t ");
                  break;
            }
         }
         System.out.println();
      }
      fis.close();
   }
}

Mari kita simpan kode di atas Readsheet.java file, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac Readsheet.java
$java Readsheet

Jika lingkungan sistem Anda dikonfigurasi dengan pustaka POI, itu akan dikompilasi dan dijalankan untuk menghasilkan keluaran berikut di prompt perintah.

EMP ID   EMP NAME       DESIGNATION 
 tp01     Gopal       Technical Manager 
 tp02     Manisha     Proof Reader 
 tp03     Masthan     Technical Writer 
 tp04     Satish      Technical Writer 
 tp05     Krishna     Technical Writer