Apache PoI adalah Java API lintas-platform gratis dan open source yang ditulis di Java. Apache PoI menyediakan fungsi program Java untuk membaca dan menulis arsip format Microsoft Office.
Halaman Unduh Proyek: http://poi.apache.org/download.html
Apache PoI adalah API Java yang menciptakan dan memelihara berbagai Java API yang mematuhi Standar Office Open XML (OOXML) dan Format Dokumen Komposit OLE 2 Microsoft (OLE2). Ini dapat digunakan untuk membaca dan membuat dan memodifikasi file MS Excel menggunakan Java. Selain itu, Anda juga dapat menggunakan Java untuk membaca dan membuat file MS Word dan MspowerPoint. Apache PoI menyediakan solusi Operasi Excel Java.
Contoh Dokumen Bacaan Excel
Kami menggunakan HSSFWorkbook di POI untuk membaca data Excel.
tes public void (file file) melempar ioException {inputStream inp = new FileInputStream (file); HSSFWorkbook Workbook = HSSFWorkbook baru (INP); // Buku Kerja ... Operasi Traversal} Kode di atas menunjukkan bahwa tidak apa -apa membaca file Excel2003 (XLS), tetapi begitu file Excel2007 (XLSX) dibaca, pengecualian akan dilaporkan: "Data yang disediakan tampaknya ada di HOFIE 2007+ XML.
Setelah meninjau informasi, versi Excel 2007 dari file Excel perlu dibaca menggunakan XSSFWorkbook, sebagai berikut:
tes public void (file file) melempar ioException {inputStream inp = new FileInputStream (file); XSSFWorkbook Workbook = new XSFWorkbook (INP); // Buku Kerja ... Operasi Traversal} Catatan: XSSFWorkbook memerlukan impor tambahan poi-ooxml-3.9-sources.jar dan poi-ooxml-schemas-3.9.jar.
Dengan cara ini, tidak ada masalah dalam mengimpor Excel2007, tetapi pengecualian dilaporkan mengimpor Excel2003.
Oleh karena itu, saat mengimpor Excel, cobalah untuk menilai versi Excel dan hubungi metode yang berbeda.
Saya telah berpikir untuk menggunakan nama file sufiks untuk menentukan jenisnya, tetapi jika seseorang mengubah akhiran XLSX ke XLS, jika ia menggunakan fungsi XLSX untuk dibaca, hasilnya adalah kesalahan; Meskipun nama sufiks benar, pengkodean konten file dan sebagainya tidak benar.
Akhirnya, disarankan untuk menggunakan workbookfactory.create (inputStream) di poi-oxml untuk membuat buku kerja, karena baik HSSFWorkbook dan XSSFWorkbook mengimplementasikan antarmuka buku kerja. Kodenya adalah sebagai berikut:
Workbook WB = WorkBookFactory.Create (IS);
Seperti yang dapat Anda bayangkan, dalam fungsi WorkBookFactory.Create (), harus ada penilaian pada jenis file. Mari kita lihat bagaimana penilaian kode sumber:
/ ** * Membuat buku HSSFWorkbook / XSSFWorkbook yang sesuai dari * InputStream yang diberikan. * Aliran input Anda harus mendukung tanda/reset, atau * dibungkus sebagai {@link PushbackInputStream}! */ Public Static Workbook Create (InputStream INP) melempar IOException, InvalidFormatException {// jika jelas tidak menandai/ mengatur ulang, bungkus jika (! INP.Marksupported ()) {INP = PushbackInputStream baru (INP, 8); } if (poifsfilesystem.haspoifsheader (INP)) {return hssfworkbook baru (INP); } if (poixmldocument.hasooxmlheader (INP)) {return new XSFWorkBook (opcpackage.open (INP)); } lempar IllegalArgumentException baru ("Inputstream Anda bukanlah aliran OLE2, atau aliran OOXML"); }Anda dapat melihat bahwa objek buku kerja yang tepat dibuat secara terpisah sesuai dengan jenis file. Itu dinilai berdasarkan informasi header file. Pada saat ini, bahkan jika nama akhiran diubah, masih belum bisa dilewati.