keuntungan:
JXL mendukung bahasa Cina dengan sangat baik, dan operasinya sederhana, dan metodenya tergantung pada nama dan artinya.
JXL adalah Java API murni, yang berkinerja sempurna di seluruh platform. Kode dapat dijalankan di Windows atau Linux tanpa menulis ulang
Mendukung semua versi Excel 95-2000 (dikatakan online bahwa mereka dapat mendukung Excel 2007 saat ini, tetapi belum mencobanya)
Menghasilkan format standar Excel 2000
Dukungan font, nomor, operasi tanggal
Dapat memodifikasi sifat sel
Gambar dan bagan didukung, tetapi API ini memiliki dukungan terbatas untuk grafik dan bagan, dan hanya mengenali format PNG.
kekurangan:
Dukungan gambar yang tidak efisien, tidak sempurna, dan dukungan yang kurang kuat untuk format daripada POI
Kasus:
String Times = (new SimpleDateFormat ("yyyymmddhhmmss")). Format (tanggal baru ()); string fname = "log sistem" + kali; // Daftar Nama File <Gogs> Daftar = LogsService.SelectForList (hql.toString ()); String path = request.getSession (). GetserVletContext (). GetRealPath ("/") + "xls/" + (new SimpleDateFormat ("yyyymmdd")). Format (new date ()); File file = file baru (path); // Buat if (! File.exists () &&! File.isDirectory ()) {file.mkdir (); } response.setContentType ("Application/vnd.ms-excel; charset = UTF-8"); // // Tentukan jenis menyimpan file. response.setcharacterencoding ("UTF-8"); Exportutil.writer_log (permintaan, fname, daftar, respons); // unduh ke lokalMetode ekspor writer_log adalah sebagai berikut
/*** Hasilkan file excel dan ekspor ke komputer lokal* @param fname nama file* @param Daftar data yang akan dicetak, yaitu, daftar data kueri basis data*/public static void writer_log (httpservletequest, string fname, daftar, httpservletePsResponse (httpservlex {httpret {oPPut {httpputePRets. output stream response.reset (); // Hapus aliran output // Berikut ini adalah awal pemrosesan respons nama file Cina. else fname = string baru (fname.getbytes ("UTF-8"), "iso-8859-1"); response.setHeader ("Disposisi konten", "lampiran; fileName ="+fname+". xls"); response.setContentType ("Application/msexcel; charset = UTF-8"); // Tentukan jenis output // Pemrosesan nama file Cina berakhir // Buku kerja di sini mengimpor JXL.Workbook; WritableWorkbook WBook = workbook.createworkbook (OS); // Buat Excel File WritableSheet Sheet = WBook.CreateSheet ("Log Sistem", 0); // Nama Lembar Kerja CellView CellView = CellView baru (); cellview.setAutosize (true); // atur lembar ukuran otomatis.setColumnView (0, 8); // Atur lebar sel, 0 adalah nomor kolom, 8 adalah lembaran lebar.setColumnView (1, 20); // Atur lebar sel, 1 adalah nomor kolom, 20 adalah lembaran lebar.setColumnView (2, 24); sheet.setColumnView (3, 20); sheet.setColumnView (4, 30); sheet.setColumnView (5, 13); sheet.setColumnview (6, 15); sheet.setColumnView (7, 32); sheet.setColumnView (8, 15); // atur excel font writableFont wfont = writable new (writableFont.createFont ("宋体"), 22, writablefont.bold, false, jxl.format.underlinestyle.no_underline, jxl.format.coloour.black); // Setel Cell Font Style WritableCellFormat titleFormat = new writableCellFormat (wfont); // Tambahkan Cell Font TitleFormat.SetAlignment (Alignment.Centre); // Atur penyelarasan pusat teks; String [] title = {"log sistem"}; // Atur start header tabel excel untuk (int i = 0; i <title.length; i ++) {// Apa yang diimpor di sini adalah impor jxl.write.label; Label exceltitle = label baru (i, 0, title [i], titleFormat); // konten sel // Pesanan parameter: Kolom mulai, mulai baris, kolom akhir, lembar baris akhir.Mergecells (0, 0, 8, 0); // Lokasi, baris mana, kolomnya lembar.addcell (exceltitle); // Tambahkan Informasi Sel} // Atur ujung header tabel Excel // baris pertama, yaitu, waktu tampilan, parameter: (kolom, baris, konten) writable wfonttime = writableFont baru (writableFont.createFont ("宋体"), 11, writableFont.no_bold, false, jxl.Format.FORFOR.FORFOR.FORT.PERLINGY. jxl.format.colour.black); // Setel Cell Font Style WritableCellFormat Titletime = new WritableCellFormat (WFontTime); // tambahkan font titletime.setalignment (Alignment.right); // Atur penyelarasan pusat teks; DateFormat df = new SimpleDateFormat ("yyyy-mm-dd"); // sheet.setColumnView (1, cellView); // Secara otomatis atur lebar kolom sesuai dengan label konten ContentDate = Label baru (0, 1, df.format (tanggal baru ()), titletime); // konten sel // sheet.mergecells (16, 1, 18, 1); // Lokasi, baris dan kolom mana yang ada di baris, yaitu posisi gabungan. Jika tidak ada penggabungan, Anda tidak dapat menulis sheet.addcell (ContentDate); // Tambahkan informasi sel // akhir dari baris pertama // baris kedua menunjukkan kondisi judul kondisi writableFont wfont2 = writablefont baru (writableFont.createFont ("宋体"), 11, writablefont.bold, false, jxl.Format.underlinestyle.no_underline, jxl.format.colour.colour.colour.undercack); // Setel Cell Font Style WritableCellFormat titleFormat2 = new writableCellFormat (wfont2); // Tambahkan font cell titleFormat2.setBorder (border.all, borderlinestyle.thin); // atur garis perbatasan; titleFormat2.setalignment (Alignment.Centre); // Atur penyelarasan teks yang terpusat; titleFormat2.setVerticalAntignment (verticalAlignment.centre); // atur pemusatan vertikal; Label content2a = label baru (0, 2, "nomor seri", titleFormat2); // Konten Sel-Konten Label Grid ke-1 = Label Baru (1, 2, "Nama Pengguna", TitleFormat2); // konten sel-label grid ke-2 konten2c = label baru (2, 2, "waktu rekam", titleFormat2); // konten sel-label grid ke-3 content2c = label baru (2, 2, "rekaman waktu", titleFormat2); // konten sel-label grid ke-3 content2c = label baru (2, 2, "rekaman waktu", titleFormat2); // konten sel-label grid ke-3 content2d = label baru (3, 2, "modul operasi", titleFormat2); // konten sel-label grid ke-4 konten2e = label baru (4, 2, "konten operasi", titleFormat2); // Konten Sel-Label Grid ke-5 Content2F = Label Baru (5, 2, "Operation Action", TitleFormat2); // Konten Sel-Konten Label Grid ke-6 = Label Baru (6, 2, "Operator IP", TitleFormat2); // konten sel-label grid ke-7 konten2h = label baru (7, 2, "Organisasi Operasi", TitleFormat2); // konten sel-label grid ke-8 content2i = label baru (8, 2, "note", titleFormat2); // Konten Sel-Lembar Grid ke-9.Mergecells (0, 1, 8, 1); /*sheet.mergecells(0, 2, 0, 4); // Lokasi, baris dan kolom mana yang ada di barisan, yaitu, posisi penggabungan, jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 1) lembar. Mergecells (1, 2, 1, 4); // Lokasi, baris dan kolom mana yang ada di barisan, yaitu, posisi penggabungan, jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 2) lembar. Mergecells (2, 2, 2, 4); // Lokasi, baris dan kolom mana yang ada di baris, yaitu, posisi gabungan, jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 3) lembaran. Mergecells (3, 2, 3, 4); // Lokasi, baris dan kolom mana yang ada di baris, yaitu, posisi gabungan, jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 4) lembar. Mergecells (4, 2, 4, 4); // Lokasi, baris dan kolom mana yang ada di baris, yaitu, posisi gabungan, jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 5) lembar. Mergecells (5, 2, 5, 4); // Lokasi, baris dan kolom mana yang ada di baris, yaitu, posisi gabungan, jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 6) lembar. Mergecells (6, 2, 6, 4); // Lokasi, baris dan kolom mana yang ada di baris, yaitu, posisi gabungan, jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 7) lembar. Mergecells (7, 2, 7, 4); // Lokasi, baris dan kolom mana yang ada di baris, yaitu, posisi gabungan, jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 8) lembar. Mergecells (8, 2, 8, 4); // Lokasi, baris dan kolom mana yang ada di barisan, yaitu, posisi penggabungan. Jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 9) lembar. Mergecells (9, 2, 9, 4); // Lokasi, baris dan kolom mana yang ada di barisan, yaitu, posisi penggabungan. Jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 10) lembar. Mergecells (10, 2, 12, 3); // Lokasi, baris dan kolom mana yang ada di barisan, yaitu, posisi penggabungan. Jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut ini adalah Lembar Awal 3 ke Baris 4, Kolom 11-13). Mergecells (13, 2, 15, 3); // Lokasi, baris dan kolom mana di baris pertama, yaitu posisi gabungan, jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 4, kolom 14-16) lembar. Mergecells (16, 2, 16, 4); // Lokasi, baris dan kolom mana di baris pertama, yaitu posisi gabungan, jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 17) lembar. Mergecells (17, 2, 17, 4); // Lokasi, baris dan kolom mana di baris pertama, yaitu posisi gabungan, jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 ke baris 5, kolom 18) lembar. Mergecells (18, 2, 18); // Lokasi, baris dan kolom mana yang berada di baris pertama, yaitu posisi gabungan. Jika tidak ada penggabungan, Anda tidak dapat menulisnya; (Berikut adalah garis awal 3 hingga 5, kolom 19) */ sheet.addcell (content2a); // tambahkan lembar informasi sel pertama.addcell (content2b); // tambahkan lembar informasi sel kedua.addcell (content2c); // tambahkan lembar informasi sel ketiga.addcell (content2d); // tambahkan lembar informasi sel keempat.addcell (content2e); // Tambahkan lembar informasi sel kelima.addcell (content2f); // tambahkan lembar informasi sel keenam.addcell (content2g); // tambahkan lembar informasi sel ketujuh.addcell (content2h); // Tambahkan lembar informasi sel ke -8.addcell (content2i); // Tambahkan informasi sel ke -9 writableFont wf = writable new (writableFont.createFont ("安安"), 11, writablefont.no_bold, false, jxl.format.underlinestyle.no_underline, jxl.format.colour.black); // Atur sel font cell writableCellFormat wcf = new writableCellFormat (wf); // Tambahkan font sel wcf.setborder (border.all, borderlinestyle.thin); // atur garis perbatasan-solid; wcf.setVerticalAntignment (verticalalignment.centre); // atur vertikal Alignment wcf.setalignment (Alignment.centre); // atur penyelarasan teks horizontal; wcf.setwrap (true); // Bungkus garis otomatis writableFont wf1 = writable new (writableFont.createFont ("安体"), 11, writable.no_bold, false, jxl.format.underlinestyle.no_underline, jxl.format.colour.black); // atur sel font cell writableCellFormat wcf1 = new writableCellFormat (wf1); // Tambahkan font sel wcf1.setborder (border.left, borderlinestyle.thin); // atur garis perbatasan; wcf1.setVerticalAntignment (verticalalignment.centre); // atur Alignment vertikal wcf1.setAlignment (Alignment.centre); // atur penyelarasan teks horizontal; // informasi yang diperoleh oleh database loop berikut int C = 1; // Jumlah garis excel yang digunakan untuk looping iterator it = list.iterator (); while (it.hasnext ()) {log tc = (log) it.next (); DateFormat dfmt = new SimpleDateFormat ("yyyy.mm"); String xh = string.valueof (c); if (xh == null) {xh = ""; } Label konten0 = label baru (0, c+2, xh, wcf); // Nomor Serial Name String = TC.GetUserName (); if (name == null) {name = ""; } Label konten1 = label baru (1, c+2, nama, wcf); // nama pengguna string xrpresent = tc.getLogTime (); if (xrpresent == null) {xrpresent = ""; } Label content2 = label baru (2, c+2, xrpresent, wcf); // Rekam waktu string czmodel = tc.getModel (); if (czmodel == null) {czmodel = ""; } Label konten3 = label baru (3, c+2, czmodel, wcf); // Modul Operasi String sex = tc.getContent (); if (sex == null) {sex = ""; } Label konten4 = label baru (4, c+2, jenis kelamin, wcf); // Operasi Konten String Ulang Tahun = tc.getOperate (); if (ulang tahun == null) {ulang tahun = ""; } Label konten5 = label baru (5, c+2, ulang tahun, wcf); // Operation Action String nation = tc.getip (); if (nation == null) {nation = ""; } Label konten6 = label baru (6, c+2, nation, wcf); // operator ip string asal = tc.getOrgname (); if (asal == null) {origin = ""; } Label content7 = label baru (7, c+2, asal, wcf); // atau organisasi string bplace = tc.getRemark (); if (bplace == null) {bplace = ""; } Label konten8 = label baru (8, c+2, bplace, wcf); // komentar string abc = ""; Label Content9 = Label Baru (9, C+2, ABC, WCF1); // Komentar Sheet.SetrowView (C+2, 600); // Atur lembar tinggi garis. sheet.setrowview (C+2, 600); sheet.setrowview (C+2, 600); sheet.setrowview (C+2, 600); sheet.setrowview (C+2, 600); sheet.setrowview (C+2, 600); sheet.setrowview (C+2, 600); sheet.setrowview (C+2, 600); sheet.mergecells (0, c+2, 0, c+2); // mergecells (1, c+2, 0, c+2); // Mergecells (A, B, C, D) Lembar Fungsi Gabungan Sel. Mergecells (2, C+2, 0, C+2); // lembar nomor kolom sel. Mergecells (3, C+2, 0, C+2); // B Nomor Nomor Sel sel. Mergecells (4, C+2, 0, C+2); // C Mulai dari sel [a, b], gabungkan ke colom sheet C.Mergecells (5, c+2, 0, c+2); // D dari sel [a, b], gabungkan ke bawah ke baris D sheet.mergecells (6, c+2, 0, c+2); sheet.mergecells (7, c+2, 0, c+2); sheet.mergecells (8, c+2, 0, c+2); sheet.mergecells (9, c+2, 0, c+2); sheet.addcell (content0); sheet.addcell (content1); sheet.addcell (content2); sheet.addcell (content3); sheet.addcell (content4); sheet.addcell (content5); sheet.addcell (content6); sheet.addcell (content7); sheet.addcell (content8); sheet.addcell (content9); C ++; } wbook.write (); // tulis ke file wbook.close (); os.close (); } catch (Exception e) {Throw New PaikeException ("Ekspor Kesalahan File"); }}Contoh penjelasan di atas dari JXL mengekspor data ke Excel adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.