Apache POI - Panduan Cepat

Sering kali, aplikasi perangkat lunak diperlukan untuk menghasilkan laporan dalam format file Microsoft Excel. Terkadang, aplikasi bahkan diharapkan menerima file Excel sebagai data masukan. Misalnya, aplikasi yang dikembangkan untuk departemen Keuangan suatu perusahaan akan diminta untuk menghasilkan semua outputnya di Excel.

Setiap programmer Java yang ingin menghasilkan file MS Office sebagai output harus menggunakan API yang telah ditentukan dan hanya-baca untuk melakukannya.

Apa itu Apache POI?

Apache POI adalah API populer yang memungkinkan pemrogram membuat, memodifikasi, dan menampilkan file MS Office menggunakan program Java. Ini adalah pustaka sumber terbuka yang dikembangkan dan didistribusikan oleh Apache Software Foundation untuk merancang atau memodifikasi file Microsoft Office menggunakan program Java. Ini berisi kelas dan metode untuk memecahkan kode data input pengguna atau file ke dalam dokumen MS Office.

Komponen Apache POI

Apache POI berisi kelas dan metode untuk bekerja pada semua dokumen Compound OLE2 MS Office. Daftar komponen API ini diberikan di bawah ini.

  • POIFS(Sistem File Implementasi Kebingungan Buruk) - Komponen ini adalah faktor dasar dari semua elemen POI lainnya. Ini digunakan untuk membaca file yang berbeda secara eksplisit.

  • HSSF (Format Spreadsheet Mengerikan) - Digunakan untuk membaca dan menulis xls format file MS-Excel.

  • XSSF (XML Spreadsheet Format) - Digunakan untuk xlsx format file MS-Excel.

  • HPSF (Format Set Properti Mengerikan) - Digunakan untuk mengekstrak property sets dari file MS-Office.

  • HWPF (Format Pengolah Kata yang Mengerikan) - Digunakan untuk membaca dan menulis doc file ekstensi MS-Word.

  • XWPF (XML Word Processor Format) - Digunakan untuk membaca dan menulis docx file ekstensi MS-Word.

  • HSLF (Format Layout Slide yang Mengerikan) - Digunakan untuk membaca, membuat, dan mengedit presentasi PowerPoint.

  • HDGF (Format DiaGram Mengerikan) - Berisi kelas dan metode untuk MS-Visio file biner.

  • HPBF (Format PuBlisher Mengerikan) - Digunakan untuk membaca dan menulis MS-Publisher file.

Tutorial ini memandu Anda melalui proses mengerjakan file Excel menggunakan Java. Oleh karena itu pembahasan dibatasi pada komponen HSSF dan XSSF.

Note - Versi lama POI mendukung format file biner seperti doc, xls, ppt, dll. Versi 3.5 dan seterusnya, POI mendukung format file OOXML dari MS-Office seperti docx, xlsx, pptx, dll.

Seperti Apache POI, ada pustaka lain yang disediakan oleh berbagai vendor untuk pembuatan file Excel. Ini termasukAspose cells for Java oleh Aspose, JXL oleh Perpustakaan Commons, dan JExcel oleh Team Dev.

Bab ini akan memandu Anda mempelajari beberapa jenis Java Excel API dan fiturnya. Ada banyak vendor yang menyediakan API terkait Java Excel; beberapa di antaranya akan dibahas dalam bab ini.

Aspose Cells untuk Java

Aspose Cells for Java adalah Java Excel API murni berlisensi yang dikembangkan dan didistribusikan oleh vendor Aspose. Versi terbaru dari API ini adalah 8.1.2, dirilis pada Juli 2014. Ini adalah API yang kaya dan berat (kombinasi kelas Java biasa dan kelas AWT) untuk mendesain komponen Excel yang dapat membaca, menulis, dan memanipulasi spreadsheet.

Kegunaan umum dari API ini adalah sebagai berikut -

  • Pelaporan Excel, buat laporan Excel dinamis
  • Perenderan dan pencetakan Excel dengan ketelitian tinggi
  • Impor dan ekspor data dari spreadsheet Excel
  • Hasilkan, edit, dan konversikan spreadsheet

JXL

JXL adalah kerangka kerja pihak ketiga yang dirancang untuk Selenium yang mendukung otomatisasi berbasis data pada peramban web (pembaruan data secara otomatis pada peramban web). Namun ini juga digunakan sebagai pustaka dukungan umum untuk JExcel API karena memiliki fitur dasar untuk membuat, membaca, dan menulis spreadsheet.

Fitur dasarnya adalah sebagai berikut -

  • Hasilkan file Excel
  • Impor data dari buku kerja dan spreadsheet
  • Dapatkan jumlah total baris dan kolom

Note - JXL hanya mendukung format file .xls dan tidak dapat menangani volume data yang besar.

JExcel

JExcel adalah API berlisensi murni yang disediakan oleh Team Dev. Dengan menggunakan ini, programmer dapat dengan mudah membaca, menulis, menampilkan, dan memodifikasi workbook Excel di keduanya.xls dan .xlsxformat. API ini dapat dengan mudah disematkan dengan Java Swing dan AWT. Versi terbaru dari API ini adalah Jexcel-2.6.12, dirilis pada tahun 2009.

Fitur utamanya adalah sebagai berikut -

  • Otomatiskan aplikasi Excel, buku kerja, spreadsheet, dll
  • Sematkan buku kerja dalam aplikasi Java Swing sebagai komponen Swing biasa
  • Tambahkan pendengar acara ke buku kerja dan spreadsheet
  • Tambahkan penangan acara untuk menangani perilaku acara buku kerja dan spreadsheet
  • Tambahkan rekan asli untuk mengembangkan fungsionalitas khusus

Apache POI

Apache POI adalah pustaka sumber terbuka 100% yang disediakan oleh Apache Software Foundation. Sebagian besar pengembang aplikasi skala kecil dan menengah sangat bergantung pada Apache POI (HSSF + XSSF). Ini mendukung semua fitur dasar pustaka Excel; namun, rendering dan ekstraksi teks adalah fitur utamanya.

Bab ini memandu Anda melalui proses pengaturan Apache POI pada sistem berbasis Windows dan Linux. Apache POI dapat dengan mudah diinstal dan diintegrasikan dengan lingkungan Java Anda saat ini dengan mengikuti beberapa langkah sederhana tanpa prosedur penyiapan yang rumit. Administrasi pengguna diperlukan saat instalasi.

Persyaratan sistem

JDK Java SE 2 JDK 1.5 atau lebih tinggi
Penyimpanan RAM 1 GB (disarankan)
Ruang Disk Tidak ada persyaratan minimum
Versi Sistem Operasi Windows XP atau yang lebih baru, Linux

Sekarang mari kita lanjutkan dengan langkah-langkah untuk menginstal Apache POI.

Langkah 1: Verifikasi Instalasi Java Anda

Pertama-tama, Anda harus menginstal Java Software Development Kit (SDK) di sistem Anda. Untuk memverifikasi ini, jalankan salah satu dari dua perintah tergantung pada platform yang Anda kerjakan.

Jika penginstalan Java sudah dilakukan dengan benar, maka versi dan spesifikasi penginstalan Java Anda saat ini akan ditampilkan. Output sampel diberikan dalam tabel berikut.

Peron Perintah Output Sampel
Windows

Buka konsol perintah dan ketik -

\>java –version

Versi Java "1.7.0_60"

Java (TM) SE Run Time Environment (build 1.7.0_60-b19)

Java Hotspot (TM) 64-bit Server VM (build 24.60-b09, mode campuran)

Linux

Buka terminal perintah dan ketik -

$java –version

versi java "1.7.0_25"

Buka JDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64)

Buka VM Server JDK 64-Bit (build 23.7-b01, mode campuran)

  • Kami berasumsi bahwa pembaca tutorial ini telah menginstal Java SDK versi 1.7.0_60 di sistem mereka.

  • Jika Anda tidak memiliki Java SDK, unduh versi saat ini dari https://www.oracle.com/technetwork/java/javase/downloads/index.html dan menginstalnya.

Langkah 2: Setel Lingkungan Java Anda

Setel variabel lingkungan JAVA_HOME agar mengarah ke lokasi direktori dasar tempat Java diinstal pada mesin Anda. Sebagai contoh,

Sr.No. Platform & Deskripsi
1

Windows

Setel JAVA_HOME ke C: \ ProgramFiles \ java \ jdk1.7.0_60

2

Linux

Ekspor JAVA_HOME = / usr / local / java-current

Tambahkan jalur lengkap lokasi kompilator Java ke Jalur Sistem.

Sr.No. Platform & Deskripsi
1

Windows

Tambahkan String "C: \ Program Files \ Java \ jdk1.7.0_60 \ bin" ke bagian akhir PATH variabel sistem.

2

Linux

Ekspor PATH = $ PATH: $ JAVA_HOME / bin /

Jalankan perintahnya java -version dari command prompt seperti dijelaskan di atas.

Langkah 3: Instal Apache POI Library

Unduh Apache POI versi terbaru dari https://poi.apache.org/download.htmldan unzip isinya ke folder tempat perpustakaan yang diperlukan dapat ditautkan ke program Java Anda. Mari kita asumsikan file tersebut dikumpulkan dalam folder di drive C.

Gambar berikut menunjukkan direktori dan struktur file di dalam folder yang diunduh.

Tambahkan jalur lengkap dari lima jars seperti yang disorot pada gambar di atas ke CLASSPATH.

Sr.No. Platform & Deskripsi
1

Windows

Tambahkan string berikut ke akhir variabel pengguna

CLASSPATH -

“C: \ poi-3.9 \ poi-3.9-20121203.jar;"

“C: \ poi-3.9 \ poi-ooxml-3.9-20121203.jar;”

“C: \ poi-3.9 \ poi-ooxml-schemas-3.9-20121203.jar;”

“C: \ poi-3.9 \ ooxml-lib \ dom4j-1.6.1.jar;”

“C: \ poi-3.9 \ ooxml-lib \ xmlbeans-2.3.0.jar;.;”

2

Linux

Ekspor CLASSPATH = $ CLASSPATH:

/usr/share/poi-3.9/poi-3.9-20121203.tar:

/usr/share/poi-3.9/poi-ooxml-schemas-3.9-20121203.tar:

/usr/share/poi-3.9/poi-ooxml-3.9-20121203.tar:

/usr/share/poi-3.9/ooxml-lib/dom4j-1.6.1.tar:

/usr/share/poi-3.9/ooxml-lib/xmlbeans-2.3.0.tar

Bab ini menjelaskan beberapa kelas dan metode di bawah Apache POI API yang sangat penting untuk bekerja pada file Excel menggunakan program Java.

Buku Kerja

Ini adalah antarmuka super dari semua kelas yang membuat atau memelihara buku kerja Excel. Itu milikorg.apache.poi.ss.usermodelpaket. Dua kelas yang mengimplementasikan antarmuka ini adalah sebagai berikut -

  • HSSFWorkbook- Kelas ini memiliki metode untuk membaca dan menulis file Microsoft Excel dalam format .xls. Ini kompatibel dengan MS-Office versi 97–2003.

  • XSSFWorkbook- Kelas ini memiliki metode untuk membaca dan menulis file Microsoft Excel dan OpenOffice xml dalam format .xls atau .xlsx. Ini kompatibel dengan MS-Office versi 2007 atau yang lebih baru.

Buku Kerja HSSF

Ini adalah kelas tingkat tinggi di bawah org.apache.poi.hssf.usermodelpaket. Ini mengimplementasikanWorkbookantarmuka dan digunakan untuk file Excel dalam format .xls. Di bawah ini adalah beberapa metode dan konstruktor di bawah kelas ini.

Konstruktor Kelas

Sr.No. Pembuat & Deskripsi
1

HSSFWorkbook()

Membuat objek HSSFWorkbook baru dari awal.

2

HSSFWorkbook(DirectoryNode directory, boolean preserveNodes)

Membuat objek HSSFWworkbook baru di dalam direktori tertentu.

3

HSSFWorkbook(DirectoryNode directory, POIFSFileSystem fs, boolean preserveNodes)

Dengan adanya objek POIFSFileSystem dan direktori tertentu di dalamnya, itu membuat objek SSFWorkbook untuk membaca buku kerja yang ditentukan.

4

HSSFWorkbook(java.io.InputStream s)

Membuat objek HSSFWorkbook baru menggunakan aliran input.

5

HSSFWorkbook(java.io.InputStream s, boolean preserveNodes)

Membangun sistem file POI di sekitar aliran input Anda.

6

HSSFWorkbook(POIFSFileSystem fs)

Membuat objek HSSFWorkbook baru menggunakan objek POIFSFileSystem.

7

HSSFWorkbook(POIFSFileSystem fs, boolean preserveNodes)

Dengan adanya objek POIFSFileSystem, itu membuat objek HSSFWorkbook baru untuk membaca buku kerja yang ditentukan.

Parameter yang sering digunakan di dalam konstruktor ini adalah -

  • directory - Ini adalah direktori sistem file POI untuk memproses.

  • fs - Ini adalah sistem file POI yang berisi aliran buku kerja.

  • preservenodes- Ini adalah parameter opsional yang memutuskan apakah akan mempertahankan node lain seperti makro. Ini menghabiskan banyak memori karena menyimpan semua POIFileSystem dalam memori (jika diatur).

Note- Kelas HSSFWorkbook berisi sejumlah metode; namun mereka hanya kompatibel dengan format xls. Dalam tutorial ini, fokusnya adalah pada versi terbaru dari format file Excel. Karenanya, metode kelas HSSFWorkbook tidak terdaftar di sini. Jika Anda memerlukan metode kelas ini, lihat API kelas POI-HSSFWorkbook dihttps://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html.

XSSFWorkbook

Ini adalah kelas yang digunakan untuk mewakili format file Excel tingkat tinggi dan rendah. Itu milikorg.apache.xssf.usemodel mengemas dan mengimplementasikan Workbookantarmuka. Di bawah ini adalah metode dan konstruktor di bawah kelas ini.

Konstruktor Kelas

Sr.No. Pembuat & Deskripsi
1

XSSFWorkbook()

Membuat objek XSSFworkbook baru dari awal.

2

XSSFWorkbook(java.io.File file)

Membuat objek XSSFWorkbook dari file tertentu.

3

XSSFWorkbook(java.io.InputStream is)

Membuat objek XSSFWorkbook, dengan menyangga seluruh aliran input ke dalam memori dan kemudian membuka objek OPCPackage untuknya.

4

XSSFWorkbook(java.lang.String path)

Membuat objek XSSFWorkbook yang diberi jalur lengkap file.

Metode Kelas

Sr.No. Metode & Deskripsi
1

createSheet()

Membuat lembar XSSFS untuk buku kerja ini, menambahkannya ke lembar, dan mengembalikan representasi tingkat tinggi.

2

createSheet(java.lang.String sheetname)

Membuat lembar baru untuk Buku Kerja ini dan mengembalikan representasi tingkat tinggi.

3

createFont()

Membuat font baru dan menambahkannya ke tabel font buku kerja.

4

createCellStyle()

Membuat XSSFCellStyle baru dan menambahkannya ke tabel gaya buku kerja.

5

createFont()

Membuat font baru dan menambahkannya ke tabel font buku kerja.

6

setPrintArea(int sheetIndex, int startColumn, int endColumn, int startRow,int endRow)

Menetapkan area cetak dari lembar tertentu sesuai parameter yang ditentukan.

Untuk metode lainnya dari kelas ini, lihat dokumen API lengkap di: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFWorkbook.html. untuk daftar lengkap metode.

Lembar

Sheet adalah antarmuka di bawah org.apache.poi.ss.usermodelpaket dan itu adalah antarmuka super dari semua kelas yang membuat spreadsheet tingkat tinggi atau rendah dengan nama tertentu. Jenis lembar bentang yang paling umum adalah lembar kerja, yang direpresentasikan sebagai kisi sel.

HSSFSheet

Ini adalah kelas di bawah org.apache.poi.hssf.usermodelpaket. Itu dapat membuat spreadsheet excel dan memungkinkan untuk memformat gaya lembar dan data lembar.

Konstruktor Kelas

Sr.No. Pembuat & Deskripsi
1

HSSFSheet(HSSFWorkbook workbook)

Membuat lembar HSSFS baru yang dipanggil oleh HSSFWorkbook untuk membuat lembar dari awal.

2

HSSFSheet(HSSFWorkbook workbook, InternalSheet sheet)

Membuat lembar HSSFS yang mewakili objek lembar yang diberikan.

XSSFSheet

Ini adalah kelas yang mewakili representasi tingkat tinggi dari spreadsheet excel. Itu di bawahorg.apache.poi.hssf.usermodel paket.

Konstruktor Kelas

Sr.No. Pembuat & Deskripsi
1

XSSFSheet()

Membuat lembar XSSFS baru - disebut oleh XSSFWorkbook untuk membuat lembar dari awal.

2

XSSFSheet(PackagePart part, PackageRelationship rel)

Membuat lembar XSSFS yang mewakili bagian paket dan hubungan yang diberikan.

Metode Kelas

Sr.No. Metode & Deskripsi
1

addMergedRegion(CellRangeAddress region)

Menambahkan wilayah sel yang digabungkan (karenanya sel-sel itu membentuk satu).

2

autoSizeColumn(int column)

Sesuaikan lebar kolom agar pas dengan isinya.

3

iterator()

Metode ini adalah alias untuk rowIterator () guna memungkinkan foreach loop

4

addHyperlink(XSSFHyperlink hyperlink)

Mendaftarkan hyperlink dalam kumpulan hyperlink di sheet ini

Untuk metode lainnya dari kelas ini, lihat API lengkap di: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFSheet.html.

Baris

Ini adalah antarmuka di bawah org.apache.poi.ss.usermodelpaket. Ini digunakan untuk representasi tingkat tinggi dari baris spreadsheet. Ini adalah antarmuka super dari semua kelas yang mewakili baris di perpustakaan POI.

XSSFRow

Ini adalah kelas di bawah org.apache.poi.xssf.usermodelpaket. Ini mengimplementasikan antarmuka Row, oleh karena itu dapat membuat baris dalam spreadsheet. Di bawah ini adalah metode dan konstruktor di bawah kelas ini.

Metode Kelas

Sr.No. Metode & Deskripsi
1

createCell(int columnIndex)

Membuat sel baru di dalam baris dan mengembalikannya.

2

setHeight(short height)

Tetapkan tinggi dalam satuan pendek.

Untuk metode yang tersisa dari kelas ini, ikuti tautan yang diberikan https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFRow.html

Sel

Ini adalah antarmuka di bawah org.apache.poi.ss.usermodelpaket. Ini adalah antarmuka super dari semua kelas yang mewakili sel di baris spreadsheet.

Sel dapat mengambil berbagai atribut seperti kosong, numerik, tanggal, kesalahan, dll. Sel harus memiliki nomor sendiri (berbasis 0) sebelum ditambahkan ke baris.

XSSFCell

Ini adalah kelas di bawah org.apache.poi.xssf.usermodelpaket. Ini mengimplementasikan antarmuka Sel. Ini adalah representasi sel tingkat tinggi di baris spreadsheet.

Ringkasan Lapangan

Di bawah ini adalah beberapa field dari kelas XSSFCell beserta deskripsinya.

Sr.No. Jenis & Deskripsi Sel
1

CELL_TYPE_BLANK

Merupakan sel kosong

2

CELL_TYPE_BOOLEAN

Merepresentasikan sel Boolean (true atau false)

3

CELL_TYPE_ERROR

Merupakan nilai kesalahan pada sel

4

CELL_TYPE_FORMULA

Merepresentasikan hasil rumus di sel

5

CELL_TYPE_NUMERIC

Merepresentasikan data numerik pada sel

6

CELL_TYPE_STRING

Merepresentasikan string (teks) pada sel

Metode Kelas

Sr.No. Metode & Deskripsi
1

setCellStyle(CellStyle style)

Mengatur gaya sel.

2

setCellType(int cellType)

Menyetel tipe sel (numerik, rumus, atau string).

3

setCellValue(boolean value)

Menetapkan nilai boolean untuk sel tersebut.

4

setCellValue(java.util.Calendar value)

Menetapkan nilai tanggal untuk sel.

5

setCellValue(double value)

Menetapkan nilai numerik untuk sel.

6

setCellValue(java.lang.String str)

Menetapkan nilai string untuk sel.

7

setHyperlink(Hyperlink hyperlink)

Menetapkan hyperlink ke sel ini.

Untuk metode dan bidang lainnya dari kelas ini, kunjungi tautan berikut: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCell.html

XSSFCellStyle

Ini adalah kelas di bawah org.apache.poi.xssf.usermodelpaket. Ini akan memberikan informasi yang mungkin mengenai format konten dalam sel spreadsheet. Ini juga menyediakan opsi untuk mengubah format itu. Ini mengimplementasikan antarmuka CellStyle.

Ringkasan Lapangan

Tabel berikut mencantumkan beberapa bidang yang diwarisi dari antarmuka CellStyle.

Sr.No. Bidang & Deskripsi
1

ALIGN_CENTER

Rata tengah isi sel

2

ALIGN_CENTER_SELECTION

Perataan horizontal pemilihan tengah

3

ALIGN_FILL

Sel sesuai dengan ukuran konten

4

ALIGN_JUSTIFY

Sesuaikan konten sel dengan lebarnya

5

ALIGN_LEFT

Rata kiri konten sel

6

ALIGN_RIGHT

Meratakan konten sel ke kanan

7

BORDER_DASH_DOT

Gaya sel dengan tanda hubung dan titik

8

BORDER_DOTTED

Gaya sel dengan batas putus-putus

9

BORDER_DASHED

Gaya sel dengan batas putus-putus

10

BORDER_THICK

Gaya sel dengan batas tebal

11

BORDER_THIN

Gaya sel dengan batas tipis

12

VERTICAL_BOTTOM

Sejajarkan konten sel di bagian bawah vertikal

13

VERTICAL_CENTER

Sejajarkan konten sel di tengah vertikal

15

VERTICAL_JUSTIFY

Sejajarkan dan ratakan isi sel secara vertikal

16

VERTICAL_TOP

Perataan vertikal rata atas

Konstruktor Kelas

Sr.No. Pembuat & Deskripsi
1

XSSFCellStyle(int cellXfId, int cellStyleXfId, StylesTable stylesSource, ThemesTable theme)

Membuat gaya sel dari bagian yang disediakan

2

XSSFCellStyle(StylesTable stylesSource)

Membuat Gaya sel kosong

Metode Kelas

S.No Metode & Deskripsi
1

setAlignment(short align)

Menetapkan jenis perataan horizontal untuk sel

2

setBorderBottom(short border)

Set jenis perbatasan untuk batas bawah sel

3

setBorderColor(XSSFCellBorder.BorderSide side, XSSFColor color)

Mengatur warna untuk perbatasan yang dipilih

4

setBorderLeft(Short border)

Mengatur jenis batas untuk batas kiri sel

5

setBorderRight(short border)

Menetapkan jenis batas untuk batas kanan sel

6

setBorderTop(short border)

Menetapkan jenis batas untuk batas atas sel

7

setFillBackgroundColor(XSSFColor color)

Setel warna isian latar belakang yang direpresentasikan sebagai nilai XSSFColor.

8

setFillForegroundColor(XSSFColor color)

Menyetel warna isian latar depan yang direpresentasikan sebagai nilai XSSFColor.

9

setFillPattern(short fp)

Menentukan informasi isian sel untuk pola dan isian sel warna solid.

10

setFont(Font font)

Setel font untuk gaya ini.

11

setRotation(short rotation)

Menyetel derajat rotasi teks di dalam sel.

12

setVerticalAlignment(short align)

Menetapkan tipe perataan vertikal untuk sel.

Untuk metode dan kolom lainnya di kelas ini, buka link berikut: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCellStyle.html

HSSFCwarna

Ini adalah kelas di bawah org.apache.poi.hssf.utilpaket. Ini memberikan warna yang berbeda sebagai kelas bersarang. Biasanya kelas bertingkat ini direpresentasikan dengan menggunakan indeksnya sendiri. Ini mengimplementasikan antarmuka Warna.

Kelas bertingkat

Semua kelas bertingkat dari kelas ini bersifat statis dan setiap kelas memiliki indeksnya. Kelas warna bersarang ini digunakan untuk pemformatan sel seperti konten sel, batas, latar depan, dan latar belakang. Di bawah ini adalah beberapa kelas bersarang.

Sr.No. Nama kelas (warna)
1 HSSFColor.AQUA
2 HSSFCwarna. OTOMATIS
3 HSSFColor.BLACK
4 HSSFColor.BLUE
5 HSSFColor.BRIGHT_GREEN
6 HSSFColor.BRIGHT_GRAY
7 HSSFColor.CORAL
8 HSSFColor.DARK_BLUE
9 HSSFColor.DARK_GREEN
10 HSSFColor.SKY_BLUE
11 HSSFColor.WHITE
12 HSSFColor.YELLOW

Metode Kelas

Hanya satu metode dari kelas ini yang penting dan yang digunakan untuk mendapatkan nilai indeks.

Sr.No. Metode & Deskripsi
1

getIndex()

Metode ini digunakan untuk mendapatkan nilai indeks kelas bersarang.

Untuk metode dan kelas bertingkat yang tersisa, lihat link berikut: https://poi.apache.org/apidocs/org/apache/poi/hssf/util/HSSFColor.html

XSSFColor

Ini adalah kelas di bawah org.apache.poi.xssf.usermodelpaket. Ini digunakan untuk mewakili warna dalam spreadsheet. Ini mengimplementasikan antarmuka Warna. Di bawah ini adalah beberapa metode dan konstruktornya.

Konstruktor Kelas

Sr.No. Pembuat & Deskripsi
1

XSSFColor()

Membuat instance baru XSSFColor.

2

XSSFColor(byte[] rgb)

Membuat instance baru XSSFColor menggunakan RGB.

3

XSSFColor(java.awt.Color clr)

Membuat instance baru XSSFColor menggunakan kelas Color dari paket awt.

Metode Kelas

Sr.No. Metode & Deskripsi
1

setAuto(boolean auto)

Menyetel nilai boolean untuk menunjukkan bahwa ctColor otomatis dan sistem ctColor bergantung.

2

setIndexed(int indexed)

Setel nilai ctColor yang diindeks sebagai ctColor sistem.

Untuk metode lainnya, kunjungi tautan berikut ini: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFColor.html

XSSFFont

Ini adalah kelas di bawah org.apache.poi.xssf.usermodelpaket. Ini mengimplementasikan antarmuka Font dan oleh karena itu dapat menangani font yang berbeda dalam buku kerja.

Pembuat Kelas

Sr.No. Pembuat & Deskripsi
1

XSSFFont()

Membuat instance XSSFont baru.

Metode Kelas

Sr.No. Metode & Deskripsi
1

setBold(boolean bold)

Menetapkan nilai Boolean untuk atribut 'bold'.

2

setColor(short color)

Mengatur warna yang diindeks untuk font.

3

setColor(XSSFColor color)

Mengatur warna font dalam nilai warna Standard Alpha RGB.

4

setFontHeight(short height)

Setel tinggi font dalam poin.

5

setFontName(java.lang.String name)

Menyetel nama font.

6

setItalic(boolean italic)

Menetapkan nilai Boolean untuk properti 'italic'.

Untuk metode lainnya, buka tautan berikut ini: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFFont.html

XSSFHyperlink

Ini adalah kelas di bawah org.apache.poi.xssf.usermodelpaket. Ini mengimplementasikan antarmuka Hyperlink. Ini digunakan untuk mengatur hyperlink ke konten sel spreadsheet.

Fields

Bidang kelas ini adalah sebagai berikut. Di sini, kolom berarti jenis hyperlink yang digunakan.

Sr.No. Bidang & Deskripsi
1

LINK_DOCUMENT

Digunakan untuk menautkan dokumen lain

2

LINK_EMAIL

Digunakan untuk menautkan email

3

LINK_FILE

Digunakan untuk menautkan file lain dalam format apa pun

4

LINK_URL

Digunakan untuk menautkan URL web

Metode Kelas

Sr.No. Metode & Deskripsi
1

setAddress(java.lang.String address)

Alamat hyperlink.

Untuk metode lainnya, kunjungi tautan berikut ini: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFHyperlink.html

XSSFCreationHelper

Ini adalah kelas di bawah org.apache.poi.xssf.usermodelpaket. Ini mengimplementasikan antarmuka CreationHelper. Ini digunakan sebagai kelas dukungan untuk evaluasi formula dan menyiapkan hyperlink.

Metode kelas

Sr.No. Metode & Deskripsi
1

createFormulaEvaluator()

Membuat instance XSSFFormulaEvaluator, objek yang mengevaluasi sel rumus.

2

createHyperlink(int type)

Membuat XSSFHyperlink baru.

Untuk metode selanjutnya, lihat tautan berikut: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCreationHelper.html

XSSFPrintSetup

Ini adalah kelas di bawah org.apache.poi.xsssf.usermodelpaket. Ini mengimplementasikanPrintSetupantarmuka. Ini digunakan untuk mengatur ukuran halaman cetak, area, opsi, dan pengaturan.

Metode Kelas

Sr.No. Metode & Deskripsi
1

setLandscape(boolean ls)

Menyetel nilai boolean untuk mengizinkan atau memblokir pencetakan lanskap.

2

setLeftToRight(boolean ltor)

Menyetel apakah akan pergi ke kiri ke kanan atau atas ke bawah dalam pemesanan saat mencetak.

3

setPaperSize(short size)

Atur ukuran kertas.

Untuk metode lainnya, kunjungi tautan berikut ini: https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFPrintSetup.html

Di sini istilah 'Buku Kerja' berarti file Microsoft Excel. Setelah menyelesaikan bab ini, Anda akan dapat membuat Buku Kerja baru dan membuka Buku Kerja yang ada dengan program Java Anda.

Create Blank Workbook

The following simple program is used to create a blank Microsoft Excel Workbook.

import java.io.*;
import org.apache.poi.xssf.usermodel.*;

public class CreateWorkBook {
   public static void main(String[] args)throws Exception {
      //Create Blank workbook
      XSSFWorkbook workbook = new XSSFWorkbook(); 

      //Create file system using specific name
      FileOutputStream out = new FileOutputStream(new File("createworkbook.xlsx"));

      //write operation workbook using file out object 
      workbook.write(out);
      out.close();
      System.out.println("createworkbook.xlsx written successfully");
   }
}

Let us save the above Java code as CreateWorkBook.java, and then compile and execute it from the command prompt as follows −

$javac CreateWorkBook.java $java CreateWorkBook

If your system environment is configured with the POI library, it will compile and execute to generate the blank Excel file named createworkbook.xlsx in your current directory and display the following output in the command prompt.

createworkbook.xlsx written successfully

Open Existing Workbook

Use the following code to open an existing workbook.

import java.io.*;
import org.apache.poi.xssf.usermodel.*;

public class OpenWorkBook {
   public static void main(String args[])throws Exception { 
      File file = new File("openworkbook.xlsx");
      FileInputStream fIP = new FileInputStream(file);
      
      //Get the workbook instance for XLSX file 
      XSSFWorkbook workbook = new XSSFWorkbook(fIP);
      
      if(file.isFile() && file.exists()) {
         System.out.println("openworkbook.xlsx file open successfully.");
      } else {
         System.out.println("Error to open openworkbook.xlsx file.");
      }
   }
}

Save the above Java code as OpenWorkBook.java, and then compile and execute it from the command prompt as follows −

$javac OpenWorkBook.java $java OpenWorkBook

It will compile and execute to generate the following output.

openworkbook.xlsx file open successfully.

After opening a workbook, you can perform read and write operations on it.

This chapter explains how to create a spreadsheet and manipulate it using Java. Spreadsheet is a page in an Excel file; it contains rows and columns with specific names.

After completing this chapter, you will be able to create a spreadsheet and perform read operations on it.

Create a Spreadsheet

First of all, let us create a spreadsheet using the referenced classes discussed in the earlier chapters. By following the previous chapter, create a workbook first and then we can go on and create a sheet.

The following code snippet is used to create a spreadsheet.

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

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

Rows on Spreadsheet

Spreadsheets have a grid layout. The rows and columns are identified with specific names. The columns are identified with alphabets and rows with numbers.

The following code snippet is used to create a row.

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

Write into a Spreadsheet

Let us consider an example of employee data. Here the employee data is given in a tabular form.

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

The following code is used to write the above data into a 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");
   }
}

Save the above Java code as Writesheet.java, and then compile and run it from the command prompt as follows −

$javac Writesheet.java $java Writesheet

It will compile and execute to generate an Excel file named Writesheet.xlsx in your current directory and you will get the following output in the command prompt.

Writesheet.xlsx written successfully

The Writesheet.xlsx file looks as follows.

Read from a Spreadsheet

Let us consider the above excel file named Writesheet.xslx as input. Observe the following code; it is used for reading the data from a 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();
   }
}

Let us keep the above code in Readsheet.java file, and then compile and run it from the command prompt as follows −

$javac Readsheet.java $java Readsheet

If your system environment is configured with the POI library, it will compile and execute to generate the following output in the command prompt.

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

Any data that you enter into a spreadsheet is always stored in a cell. We use the labels of rows and columns to identify a cell. This chapter describes how to manipulate data in cells in a spreadsheet using Java programming.

Create a Cell

You need to create a row before creating a cell. A row is nothing but a collection of cells.

The following code snippet is used for creating a cell.

//create new workbook
XSSFWorkbook workbook = new XSSFWorkbook(); 

//create spreadsheet with a name
XSSFSheet spreadsheet = workbook.createSheet("new sheet");

//create first row on a created spreadsheet
XSSFRow row = spreadsheet.createRow(0);

//create first cell on created row
XSSFCell cell = row.createCell(0);

Types of Cells

The cell type specifies whether a cell can contain strings, numeric value, or formulas. A string cell cannot hold numeric values and a numeric cell cannot hold strings. Given below are the types of cells, their values, and type syntax.

Type of cell value Type Syntax
Blank cell value XSSFCell.CELL_TYPE_BLANK
Boolean cell value XSSFCell.CELL.TYPE_BOOLEAN
Error cell value XSSFCell.CELL_TYPE_ERROR
Numeric cell value XSSFCell.CELL_TYPE_NUMERIC
String cell value XSSFCell.CELL_TYPE_STRING

The following code is used to create different types of cells in a spreadsheet.

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

import java.util.Date;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class TypesofCells {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("cell types");
      
      XSSFRow row = spreadsheet.createRow((short) 2);
      row.createCell(0).setCellValue("Type of Cell");
      row.createCell(1).setCellValue("cell value");
      
      row = spreadsheet.createRow((short) 3);
      row.createCell(0).setCellValue("set cell type BLANK");
      row.createCell(1);
      
      row = spreadsheet.createRow((short) 4);
      row.createCell(0).setCellValue("set cell type BOOLEAN");
      row.createCell(1).setCellValue(true);
      
      row = spreadsheet.createRow((short) 5);
      row.createCell(0).setCellValue("set cell type ERROR");
      row.createCell(1).setCellValue(XSSFCell.CELL_TYPE_ERROR );
      
      row = spreadsheet.createRow((short) 6);
      row.createCell(0).setCellValue("set cell type date");
      row.createCell(1).setCellValue(new Date());
      
      row = spreadsheet.createRow((short) 7);
      row.createCell(0).setCellValue("set cell type numeric");
      row.createCell(1).setCellValue(20 );
      
      row = spreadsheet.createRow((short) 8);
      row.createCell(0).setCellValue("set cell type string");
      row.createCell(1).setCellValue("A String");
      
      FileOutputStream out = new FileOutputStream(new File("typesofcells.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("typesofcells.xlsx written successfully");
   }
}

Save the above code in a file named TypesofCells.java, compile and execute it from the command prompt as follows.

$javac TypesofCells.java $java TypesofCells

If your system is configured with the POI library, then it will compile and execute to generate an Excel file named typesofcells.xlsx in your current directory and display the following output.

typesofcells.xlsx written successfully

The typesofcells.xlsx file looks as follows.

Cell Styles

Here you can learn how to do cell formatting and apply different styles such as merging adjacent cells, adding borders, setting cell alignment and filling with colors.

The following code is used to apply different styles to cells using Java programming.

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

import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class CellStyle {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("cellstyle");
      XSSFRow row = spreadsheet.createRow((short) 1);
      row.setHeight((short) 800);
      XSSFCell cell = (XSSFCell) row.createCell((short) 1);
      cell.setCellValue("test of merging");

      //MEARGING CELLS 
      //this statement for merging cells

      spreadsheet.addMergedRegion(
         new CellRangeAddress(
            1, //first row (0-based)
            1, //last row (0-based)
            1, //first column (0-based)
            4 //last column (0-based)
         )
      );
      
      //CELL Alignment
      row = spreadsheet.createRow(5); 
      cell = (XSSFCell) row.createCell(0);
      row.setHeight((short) 800);
      
      // Top Left alignment 
      XSSFCellStyle style1 = workbook.createCellStyle();
      spreadsheet.setColumnWidth(0, 8000);
      style1.setAlignment(XSSFCellStyle.ALIGN_LEFT);
      style1.setVerticalAlignment(XSSFCellStyle.VERTICAL_TOP);
      cell.setCellValue("Top Left");
      cell.setCellStyle(style1);
      row = spreadsheet.createRow(6); 
      cell = (XSSFCell) row.createCell(1);
      row.setHeight((short) 800);
      
      // Center Align Cell Contents 
      XSSFCellStyle style2 = workbook.createCellStyle();
      style2.setAlignment(XSSFCellStyle.ALIGN_CENTER);
      style2.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
      cell.setCellValue("Center Aligned"); 
      cell.setCellStyle(style2);
      row = spreadsheet.createRow(7); 
      cell = (XSSFCell) row.createCell(2);
      row.setHeight((short) 800);
      
      // Bottom Right alignment 
      XSSFCellStyle style3 = workbook.createCellStyle();
      style3.setAlignment(XSSFCellStyle.ALIGN_RIGHT);
      style3.setVerticalAlignment(XSSFCellStyle.VERTICAL_BOTTOM);
      cell.setCellValue("Bottom Right");
      cell.setCellStyle(style3);
      row = spreadsheet.createRow(8);
      cell = (XSSFCell) row.createCell(3);
      
      // Justified Alignment 
      XSSFCellStyle style4 = workbook.createCellStyle();
      style4.setAlignment(XSSFCellStyle.ALIGN_JUSTIFY);
      style4.setVerticalAlignment(XSSFCellStyle.VERTICAL_JUSTIFY);
      cell.setCellValue("Contents are Justified in Alignment"); 
      cell.setCellStyle(style4);
      
      //CELL BORDER
      row = spreadsheet.createRow((short) 10);
      row.setHeight((short) 800);
      cell = (XSSFCell) row.createCell((short) 1);
      cell.setCellValue("BORDER");
      
      XSSFCellStyle style5 = workbook.createCellStyle();
      style5.setBorderBottom(XSSFCellStyle.BORDER_THICK);
      style5.setBottomBorderColor(IndexedColors.BLUE.getIndex());
      style5.setBorderLeft(XSSFCellStyle.BORDER_DOUBLE);
      style5.setLeftBorderColor(IndexedColors.GREEN.getIndex());
      style5.setBorderRight(XSSFCellStyle.BORDER_HAIR);
      style5.setRightBorderColor(IndexedColors.RED.getIndex());
      style5.setBorderTop(XSSFCellStyle.BIG_SPOTS);
      style5.setTopBorderColor(IndexedColors.CORAL.getIndex());
      cell.setCellStyle(style5);
      
      //Fill Colors
      //background color
      row = spreadsheet.createRow((short) 10 );
      cell = (XSSFCell) row.createCell((short) 1);
      
      XSSFCellStyle style6 = workbook.createCellStyle();
      style6.setFillBackgroundColor(HSSFColor.LEMON_CHIFFON.index );
      style6.setFillPattern(XSSFCellStyle.LESS_DOTS);
      style6.setAlignment(XSSFCellStyle.ALIGN_FILL);
      spreadsheet.setColumnWidth(1,8000);
      cell.setCellValue("FILL BACKGROUNG/FILL PATTERN");
      cell.setCellStyle(style6);
      
      //Foreground color
      row = spreadsheet.createRow((short) 12);
      cell = (XSSFCell) row.createCell((short) 1);
      
      XSSFCellStyle style7 = workbook.createCellStyle();
      style7.setFillForegroundColor(HSSFColor.BLUE.index);
      style7.setFillPattern( XSSFCellStyle.LESS_DOTS);
      style7.setAlignment(XSSFCellStyle.ALIGN_FILL);
      cell.setCellValue("FILL FOREGROUND/FILL PATTERN");
      cell.setCellStyle(style7);

      FileOutputStream out = new FileOutputStream(new File("cellstyle.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("cellstyle.xlsx written successfully");
   }
}

Simpan kode di atas dalam sebuah file bernama CellStyle.java, kompilasi dan jalankan dari command prompt sebagai berikut.

$javac CellStyle.java $java CellStyle

Ini akan menghasilkan file Excel bernama cellstyle.xlsx di direktori Anda saat ini dan menampilkan output berikut.

cellstyle.xlsx written successfully

File cellstyle.xlsx terlihat sebagai berikut.

Bab ini menjelaskan cara mengatur font berbeda, menerapkan gaya, dan menampilkan teks dalam berbagai sudut arah di lembar bentang Excel.

Setiap sistem dilengkapi dengan koleksi font yang sangat banyak seperti Arial, Impact, Times New Roman, dll. Koleksi tersebut juga dapat diupdate dengan font baru, jika diperlukan. Demikian pula, ada berbagai gaya di mana font dapat ditampilkan, misalnya tebal, miring, garis bawah, coret, dll.

Font dan Gaya Font

Kode berikut digunakan untuk menerapkan font dan gaya tertentu ke konten sel.

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

import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class FontStyle {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("Fontstyle");
      XSSFRow row = spreadsheet.createRow(2);

      //Create a new font and alter it.
      XSSFFont font = workbook.createFont();
      font.setFontHeightInPoints((short) 30);
      font.setFontName("IMPACT");
      font.setItalic(true);
      font.setColor(HSSFColor.BRIGHT_GREEN.index);

      //Set font into style
      XSSFCellStyle style = workbook.createCellStyle();
      style.setFont(font);

      // Create a cell with a value and set style to it.
      XSSFCell cell = row.createCell(1);
      cell.setCellValue("Font Style");
      cell.setCellStyle(style);
      
      FileOutputStream out = new FileOutputStream(new File("fontstyle.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("fontstyle.xlsx written successfully");
   }
}

Mari kita simpan kode di atas dalam sebuah file bernama FontStyle.java. Kompilasi dan jalankan dari command prompt sebagai berikut.

$javac FontStyle.java $java FontStyle

Ini menghasilkan file Excel bernama fontstyle.xlsx di direktori Anda saat ini dan tampilkan output berikut pada command prompt.

fontstyle.xlsx written successfully

Itu fontstyle.xlsx File terlihat sebagai berikut.

Arah Teks

Di sini Anda dapat mempelajari cara mengatur arah teks dalam berbagai sudut. Biasanya isi sel ditampilkan secara horizontal, dari kiri ke kanan, dan pada sudut 00; namun Anda dapat menggunakan kode berikut untuk memutar arah teks, jika diperlukan.

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

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class TextDirection {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("Text direction");
      XSSFRow row = spreadsheet.createRow(2);
      XSSFCellStyle myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 0);
      XSSFCell cell = row.createCell(1);
      cell.setCellValue("0D angle");
      cell.setCellStyle(myStyle);

      //30 degrees
      myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 30);
      cell = row.createCell(3);
      cell.setCellValue("30D angle");
      cell.setCellStyle(myStyle);

      //90 degrees
      myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 90);
      cell = row.createCell(5);
      cell.setCellValue("90D angle");
      cell.setCellStyle(myStyle);

      //120 degrees
      myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 120);
      cell = row.createCell(7);
      cell.setCellValue("120D angle");
      cell.setCellStyle(myStyle);

      //270 degrees
      myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 270);
      cell = row.createCell(9);
      cell.setCellValue("270D angle");
      cell.setCellStyle(myStyle);

      //360 degrees
      myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 360);
      cell = row.createCell(12);
      cell.setCellValue("360D angle");
      cell.setCellStyle(myStyle);
      
      FileOutputStream out = new FileOutputStream(new File("textdirection.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("textdirection.xlsx written successfully");
   }
}

Simpan kode di atas TextDirectin.java file, lalu kompilasi dan jalankan dari command prompt sebagai berikut.

$javac TextDirection.java $java TextDirection

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

textdirection.xlsx written successfully

Itu textdirection.xlsx File terlihat sebagai berikut.

Bab ini memandu Anda melalui proses penerapan rumus berbeda pada sel menggunakan pemrograman Java. Tujuan dasar dari aplikasi Excel adalah untuk memelihara data numerik dengan menerapkan rumus di atasnya.

Dalam rumus, kami meneruskan nilai dinamis atau lokasi nilai di lembar Excel. Saat menjalankan rumus ini, Anda mendapatkan hasil yang diinginkan. Tabel berikut mencantumkan beberapa rumus dasar yang sering digunakan di Excel.

Operasi Sintaksis
Menambahkan beberapa angka = SUM (Loc1: Locn) or = SUM (n1, n2,)
Menghitung = JUMLAH (Loc1: Locn) or = JUMLAH (n1, n2,)
Kekuatan dua angka = DAYA (Loc1, Loc2) or = POWER (angka, power)
Maksimal beberapa angka = MAX (Loc1: Locn) or = MAKS (n1, n2,)
Produk = PRODUCT (Loc1: Locn) or = PRODUK (n1, n2,)
Faktorial = FAKTA (Locn) or = FAKTA (angka)
Angka mutlak = ABS (Locn) or = ABS (nomor)
Tanggal hari ini = HARI INI ()
Mengonversi huruf kecil = RENDAH (Locn) or = LOWER (teks)
Akar pangkat dua = SQRT (locn) or = SQRT (angka)

Kode berikut digunakan untuk menambahkan rumus ke sel dan menjalankannya.

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

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Formula {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("formula");
      XSSFRow row = spreadsheet.createRow(1);
      XSSFCell cell = row.createCell(1);
      
      cell.setCellValue("A = ");
      cell = row.createCell(2);
      cell.setCellValue(2);
      row = spreadsheet.createRow(2);
      cell = row.createCell(1);
      cell.setCellValue("B = ");
      cell = row.createCell(2);
      cell.setCellValue(4);
      row = spreadsheet.createRow(3);
      cell = row.createCell(1);
      cell.setCellValue("Total = ");
      cell = row.createCell(2);
      
      // Create SUM formula
      cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
      cell.setCellFormula("SUM(C2:C3)");
      cell = row.createCell(3);
      cell.setCellValue("SUM(C2:C3)");
      row = spreadsheet.createRow(4);
      cell = row.createCell(1);
      cell.setCellValue("POWER =");
      cell=row.createCell(2);
      
      // Create POWER formula
      cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
      cell.setCellFormula("POWER(C2,C3)");
      cell = row.createCell(3);
      cell.setCellValue("POWER(C2,C3)");
      row = spreadsheet.createRow(5);
      cell = row.createCell(1);
      cell.setCellValue("MAX = ");
      cell = row.createCell(2);
      
      // Create MAX formula
      cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
      cell.setCellFormula("MAX(C2,C3)");
      cell = row.createCell(3);
      cell.setCellValue("MAX(C2,C3)");
      row = spreadsheet.createRow(6);
      cell = row.createCell(1);
      cell.setCellValue("FACT = ");
      cell = row.createCell(2);
      
      // Create FACT formula
      cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
      cell.setCellFormula("FACT(C3)");
      cell = row.createCell(3);
      cell.setCellValue("FACT(C3)");
      row = spreadsheet.createRow(7);
      cell = row.createCell(1);
      cell.setCellValue("SQRT = ");
      cell = row.createCell(2);
      
      // Create SQRT formula
      cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
      cell.setCellFormula("SQRT(C5)");
      cell = row.createCell(3);
      cell.setCellValue("SQRT(C5)");
      workbook.getCreationHelper().createFormulaEvaluator().evaluateAll();
      FileOutputStream out = new FileOutputStream(new File("formula.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("fromula.xlsx written successfully");
   }
}

Simpan kode di atas sebagai Formula.java dan kemudian kompilasi dan jalankan dari command prompt sebagai berikut.

$javac Formula.java $java Formula

Ini akan menghasilkan file Excel bernama formula.xlsx di direktori Anda saat ini dan tampilkan output berikut pada command prompt.

fromula.xlsx written successfully

Itu formula.xlsx File terlihat sebagai berikut.

Bab ini menjelaskan cara menambahkan hyperlink ke konten di dalam sel. Biasanya hyperlink digunakan untuk mengakses URL web, email, atau file eksternal apa pun.

Kode berikut menunjukkan cara membuat hyperlink pada sel.

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

import org.apache.poi.common.usermodel.Hyperlink;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFHyperlink;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class HyperlinkEX {
   public static void main(String[] args) throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("Hyperlinks");
      XSSFCell cell;
      CreationHelper createHelper = workbook.getCreationHelper();
      XSSFCellStyle hlinkstyle = workbook.createCellStyle();
      XSSFFont hlinkfont = workbook.createFont();
      hlinkfont.setUnderline(XSSFFont.U_SINGLE);
      hlinkfont.setColor(HSSFColor.BLUE.index);
      hlinkstyle.setFont(hlinkfont);

      //URL Link
      cell = spreadsheet.createRow(1).createCell((short) 1);
      cell.setCellValue("URL Link");
      XSSFHyperlink link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_URL);
      link.setAddress("http://www.tutorialspoint.com/");
      cell.setHyperlink((XSSFHyperlink) link);
      cell.setCellStyle(hlinkstyle);

      //Hyperlink to a file in the current directory
      cell = spreadsheet.createRow(2).createCell((short) 1);
      cell.setCellValue("File Link");
      link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_FILE);
      link.setAddress("cellstyle.xlsx");
      cell.setHyperlink(link);
      cell.setCellStyle(hlinkstyle);

      //e-mail link
      cell = spreadsheet.createRow(3).createCell((short) 1);
      cell.setCellValue("Email Link");
      link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_EMAIL);
      link.setAddress("mailto:[email protected]?" + "subject = Hyperlink");
      cell.setHyperlink(link);
      cell.setCellStyle(hlinkstyle);
      
      FileOutputStream out = new FileOutputStream(new File("hyperlink.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("hyperlink.xlsx written successfully");
   }
}

Simpan kode di atas sebagai HyperlinkEX.java. Kompilasi dan jalankan dari command prompt sebagai berikut.

$javac HyperlinkEX.java $java HyperlinkEX

Ini akan menghasilkan file Excel bernama hyperlink.xlsx di direktori Anda saat ini dan tampilkan output berikut pada command prompt.

hyperlink.xlsx written successfully

Itu hyperlink.xlsx File terlihat sebagai berikut.

Bab ini menjelaskan cara mengatur area cetak pada spreadsheet. Area cetak biasa adalah dari kiri atas ke kanan bawah pada spreadsheet Excel. Area cetak dapat disesuaikan dengan kebutuhan Anda. Ini berarti Anda dapat mencetak rentang sel tertentu dari seluruh spreadsheet, menyesuaikan ukuran kertas, mencetak konten dengan garis kisi dihidupkan, dll.

Kode berikut digunakan untuk menyiapkan area cetak pada spreadsheet.

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

import org.apache.poi.xssf.usermodel.XSSFPrintSetup;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class PrintArea {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("Print Area");

      //set print area with indexes
      workbook.setPrintArea(
         0, //sheet index
         0, //start column
         5, //end column
         0, //start row
         5 //end row
      );
      
      //set paper size
      spreadsheet.getPrintSetup().setPaperSize(XSSFPrintSetup.A4_PAPERSIZE);
      
      //set display grid lines or not
      spreadsheet.setDisplayGridlines(true);
      
      //set print grid lines or not
      spreadsheet.setPrintGridlines(true);
      
      FileOutputStream out = new FileOutputStream(new File("printarea.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("printarea.xlsx written successfully"); 
   }
}

Mari kita simpan kode di atas sebagai PrintArea.java. Kompilasi dan jalankan dari command prompt sebagai berikut.

$javac PrintArea.java $java PrintArea

Ini akan menghasilkan file bernama printarea.xlsx di direktori Anda saat ini dan tampilkan output berikut pada command prompt.

printarea.xlsx written successfully

Dalam kode di atas, kami belum menambahkan nilai sel apa pun. Karenanyaprintarea.xlsxadalah file kosong. Tetapi Anda dapat mengamati pada gambar berikut bahwa pratinjau cetak menunjukkan area cetak dengan garis kisi.

Bab ini menjelaskan bagaimana perpustakaan POI berinteraksi dengan database. Dengan bantuan JDBC, Anda dapat mengambil data dari database dan memasukkan data tersebut ke dalam spreadsheet menggunakan perpustakaan POI. Mari kita pertimbangkan database MySQL untuk operasi SQL.

Tulis ke Excel dari Database

Mari kita asumsikan tabel data karyawan berikut disebut emp_tbl akan diambil dari database MySQL test.

ID EMP NAMA EMP DEG GAJI DEPT
1201 Gopal Manajer teknis 45000 ITU
1202 Manisha Pembaca bukti 45000 Menguji
1203 Masthanvali Penulis teknis 45000 ITU
1204 Kiran Hr Admin 40000 HR
1205 Kranthi Op Admin 30000 Admin

Gunakan kode berikut untuk mengambil data dari database dan menyisipkan yang sama ke dalam spreadsheet.

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

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelDatabase {
   public static void main(String[] args) throws Exception {
      Class.forName("com.mysql.jdbc.Driver");
      Connection connect = DriverManager.getConnection( 
         "jdbc:mysql://localhost:3306/test" , 
         "root" , 
         "root"
      );
      
      Statement statement = connect.createStatement();
      ResultSet resultSet = statement.executeQuery("select * from emp_tbl");
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("employe db");
      
      XSSFRow row = spreadsheet.createRow(1);
      XSSFCell cell;
      cell = row.createCell(1);
      cell.setCellValue("EMP ID");
      cell = row.createCell(2);
      cell.setCellValue("EMP NAME");
      cell = row.createCell(3);
      cell.setCellValue("DEG");
      cell = row.createCell(4);
      cell.setCellValue("SALARY");
      cell = row.createCell(5);
      cell.setCellValue("DEPT");
      int i = 2;

      while(resultSet.next()) {
         row = spreadsheet.createRow(i);
         cell = row.createCell(1);
         cell.setCellValue(resultSet.getInt("eid"));
         cell = row.createCell(2);
         cell.setCellValue(resultSet.getString("ename"));
         cell = row.createCell(3);
         cell.setCellValue(resultSet.getString("deg"));
         cell = row.createCell(4);
         cell.setCellValue(resultSet.getString("salary"));
         cell = row.createCell(5);
         cell.setCellValue(resultSet.getString("dept"));
         i++;
      }

      FileOutputStream out = new FileOutputStream(new File("exceldatabase.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("exceldatabase.xlsx written successfully");
   }
}

Mari kita simpan kode di atas sebagai ExcelDatabase.java. Kompilasi dan jalankan dari command prompt sebagai berikut.

$javac ExcelDatabase.java $java ExcelDatabase

Ini akan menghasilkan file Excel bernama exceldatabase.xlsx di direktori Anda saat ini dan tampilkan output berikut pada command prompt.

exceldatabase.xlsx written successfully

Itu exceldatabase.xlsx File terlihat sebagai berikut.