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.