Hari ini saya ingin memilah masalah yang saya temui beberapa waktu lalu.
Karena persyaratan proyek, bagian dari fungsi ekspor harus dilakukan. Saya menggunakan ekspor perusahaan di awal, tetapi aneh bahwa beberapa modul melaporkan kesalahan 500 saat mengekspor. Saya menemukan bahwa setelah menghapus beberapa bidang, itu kembali normal. Pada saat itu, karena proyeknya ketat, saya sementara menghapus beberapa, tetapi itu bukan solusi jangka panjang. Kemudian, saya merevisi dan menyelesaikannya secara asli. Operasi saat ini masih stabil. Saya akan membaginya dengan Anda.
Ekspor membutuhkan tiga bagian, JS, metode publik, dan metode latar belakang.
Kode JS
function exportData () {// parameter yang diterima oleh latar depan rwmc = $ ("#txt_rwmc"). val (); rwlb = $ ("#com_rwlb"). ComboBox ("getValues"). gabung (","); // Memanggil Fungsi Ekspor Latar Belakang Var Service = layanan baru ("cx.rybjcxbndservice.exprotexcel"); var str = "<rwmc>" + rwmc + "</rwmc> <rwlb>" + rwlb + "</rwlb>"; var res = service.doservice (str); var odoc = loadxml (res); if (service.getCode ()! = "2000") {showmessage ("kueri gagal:"+service.getMessage ()); kembali; } var nodata = odoc.selectsinglenode ("root/nodata"). teks; if (nodata == "nodata") {showmessage ("Tidak ada data!"); kembali; } // Dapatkan informasi ekspor var titlename = odoc.selectsinglenode ("root/title_name"). Teks; var filename = odoc.selectsinglenode ("root/file_name"). Teks; var outputInfo = odoc.selectsinglenode ("root/outputInfo"). Teks; var download_path = odoc.selectsinglenode ("root/download_path"). Teks; if (outputInfo! = "") {showMessage (outputInfo); kembali; } if (konfirmasi ("Ekspor berhasil! Konfirmasi file unduhan? /n Nama file adalah:"+fileName)) {var file = fileName; var showfile = titlename + ".xls"; showfile = decodeuricomponent (showfile); var idx = document.url.indexof ("/adp"); if (idx == -1) {alert ("Alamat host tidak dapat dikenali:" + document.url); kembali; } var host = document.url.substring (0, idx); var width = screen.width; var height = screen.height; debugger; // buka halaman unduh var param = "toolbar = tidak, lokasi = tidak, status = ya, dapat diputar ulang = tidak, scrollbars = ya, top =" + tinggi + ", kiri =" + lebar + ", lebar = 100, tinggi = 100"; // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- (iSie6) {window.location.href = host + "/adp/work/gzkp/common/js/download_new.jsp?file=" + file + "& showfile =" + showfile + "& download_path =" + download_path; } else {window.open (host + "/adp/work/gzkp/common/js/download_new.jsp?file=" + file + "& showfile =" + showfile + "& download_path =" + download_path, "_blank", param); }}}Kategori publik
Paket ctais.business.gzkp.Common; import java.io.file; import java.io.fileinputStream; import java.text.simpledateFormat; org.apache.poi2.hssf.usermodel.hssfrow; impor org.apache.poi2.hssf.usermodel.hssfsheet; impor org.apache.poi2.hssf.usermodel.hssfworkbook; impor ctaiis.business.dashboardel.hssfworkbook; ctaiis.business.dashboard.hservpore; ctaiis.config.config; import ctaiis.services.data.datawindow; import ctaiis.services.xml.xmldataObject; impor ctaiis.services.xml.xmlparser; impor Ctaiis.util.stringex; impor jxl.xlbook; impor; jxl.write.Label;import jxl.write.WritableCellFormat;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;/** * <p>Title: Generate EXCEL file</p> * <p>Description: Convert String string to EXCEL document</p> * <p>Copyright: Copyright (c) 2004 </p> * <p> Perusahaan: DC </p> * @Author fengzg * @Version 1.0 * Waktu: 2015-12-28 */Kelas Publik CreateExcel {Private Final String Statis Config_file_path = config.ctais_home; WWBBOOK WWB = NULL; XmldataObject xdo = null; public CreateExcel(){ } /** * Generate EXCEL * @param sql Query SQL * @param czryDm Operator Code * @param titles Export column title * @param exlTitle excel table header * @return * @throws Exception */ public String newToExcel(String sql,String czryDm,String[] titles,String exlTitle) throws Exception { try {Hssfworkbook wb = hssfworkbook baru (); Hssfsheet sheet = wb.createSheet (); ExportExcel ExportExcel = ExportExcel baru (WB, Sheet); StringBuffer sffer = new StringBuffer (); // int colnum = 30; DataWindow DW = DataWindow.DynamicCreate (sql.toString ()); dw.setConnectionName (icomm.gzkpjndi); long dwret = dw.retrieve (); if (dwret <= 0) {sffer.append ("<nodata> nodata </odata>"); return sffer.tostring (); } else {sffer.append ("<nodata> </odata>"); } int colnum = dw.getColumnCount (); // Tentukan lebar kolom untuk kolom worksheet (sebenarnya ubah jumlah kolom sendiri) untuk (pendek i = 0; i <= colnum; i ++) {sheet.setColumnWidth (i, (pendek) 4000); } // Buat gaya sel hssfcellstyle cellHeadstyle = wb.createCellstyle (); // Tentukan pusat perataan Cell CellHeadstyle.setAlignment (hssfcellstyle.align_center); // Tentukan sel perataan pusat vertikal CellHeadstyle.setVerticalAlignment (hssfcellstyle.vertical_center); // Tentukan pembungkus garis sel saat konten sel tidak ditampilkan di bawah cellHeadstyle.setWraptext (true); // Setel sel hssffont headfont = wb.createFont (); headfont.setBoldWeight (hssffont.boldweight_bold); headfont.setFontName ("安一"); headfont.setfontheight ((pendek) 200); CellHeadstyle.setfont (headfont); // Buat Tanggal Header Laporan DT = Tanggal Baru (); SimpleDateFormat sdt = new SimpleDateFormat ("yyyymmddhhmmsss"); String sfm = czrydm + "_" + sdt.format (dt); // atur header kolom Exportexcel.createMalMalhead (exltitle, colnum-1); Hssfrow row1 = sheet.createrow (1); untuk (int i = 0; i <title.length; i ++) {hssfcell cell = row1.createCell ((pendek) i); cell.setencoding (hssfcell.encoding_utf_16); cell.setCellStyle (CellHeadStyle); cell.setCellValue (judul [i]); } Nilai objek = ""; // Atur gaya tabel hssfcellstyle cellstyle = wb.createCellstyle (); // Tentukan sel perataan pusat selstyle.setAlignment (hssfcellstyle.align_center); // Tentukan sel perataan pusat vertikal CellStyle.setVerticalAlignment (hssfcellstyle.vertical_center); // Tentukan pembungkus garis sel ketika konten sel tidak dapat ditampilkan cellstyle.setWraptext (true); // atur font sel hssffont font = wb.createFont (); font.setBoldWeight (hssffont.ss_none); font.setFontName ("宋体"); font.setfontheight ((pendek) 200); cellstyle.setfont (font); untuk (int i = 0; i <dw.getrowcount (); i ++) {hssfrow baris = sheet.createrow (i+2); untuk (int j = 1; j <= dw.getColumnCount (); j ++) {hssfcell cell = row.createCell ((pendek) (j-1)); cell.setencoding (hssfcell.encoding_utf_16); cell.setCellStyle (CellStyle); value = dw.getitemany (i, j-1); if (value == null) {cell.setCellValue (""); } else {cell.setCellValue (value.toString ()); }}} // Atur jalur ekspor, harap dicatat di sini bahwa jika itu adalah sistem Linux yang memerlukan pembuatan jalur manual, (jika seseorang jelas tentang alasannya di sini, beri saya beberapa saran) kutip jalur file path string yang baru dibuat = "/ekspor/"; File file = file baru (path); if (! file.exists ()) {file.mkdirs (); } String fileName = sfm+". Xls"; // string pth = path.trim () + file.separator + fileName; String pth = path.trim () + fileName; pth = pth.trim (); String outputInfo = exportexcel.outputexcel (pth); sffer.append ("<itite_name>" + sfm + "</itement_name>"); sffer.append ("<download_path>" + path + "</down_path>"); sffer.append ("<FILE_NAME>" " + FILENAME +" </file_name> "); sffer.append (" <OutputInfo> " + outputInfo +" </outputInfo> "); return sffer.tostring ();} catch (Exception e) {e.printStack () ();} catchion (E. E. e.printStack () ();} Catch (Exception e) {e.printStack (); }}Kode latar belakang
/*** Fungsi Ekspor* @param xdo Parameter latar depan* @param czrydm kode operator* @return menghasilkan informasi xls* @Throws Exception Deskripsi*/Public String ExportExcel (XMLDataObject Args, string czrydm) melempar pengecualian {// menerima paramet kueri yang dilewati oleh ringrymo. Stringex.snull (args.getitemValue ("rwmc")); String rwlb = stringex.snull (args.getitemValue ("rwlb")); if (null! = rwmc &&! "". Equals (rwmc)) {sqlwhere.append ("dan a.rwmc seperti '%"+rwmc+"%'"); } if (null! = rwlb &&! " } StringBuilder sql = stringBuilder baru (); // Kueri Splicing SQL SQL.Append ("SELECT RWXH, RWMC DARI RWXX") .Append (SQLWhere) .Append ("Order by RWXH)") .Append (sqliswhere); // mengekspor judul kolom string [] judul = {"Nomor Seri Tugas", "Nama Tugas"}; // instantiate kelas publik createExcel excel = createExcel baru (); return excel.newtoExcel (sql.tostring (), czrydm, judul, "header exlcel"); }Metode mengekspor Excel di atas (mendukung versi rendah IE) adalah semua konten yang telah saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.