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