Heute möchte ich ein Problem lösen, auf das ich vor einiger Zeit gestoßen bin.
Aufgrund der Anforderungen des Projekts muss ein Teil der Exportfunktion erfolgen. Ich habe zu Beginn den Export des Unternehmens verwendet, aber es war seltsam, dass einige Module beim Export einen Fehler von 500 meldeten. Ich stellte fest, dass es nach dem Löschen einiger Felder wieder normal war. Zu dieser Zeit, weil das Projekt eng war, habe ich einige vorübergehend gelöscht, aber es war keine langfristige Lösung. Später überarbeitete und sortierte ich es auf die ursprüngliche Basis. Der aktuelle Betrieb ist noch stabil. Ich werde es mit Ihnen teilen.
Der Export erfordert drei Teile, JS, öffentliche Methoden und Hintergrundmethoden.
JS -Code
Funktion exportData () {// Die vom Vordergrund empfangenen Parameter rwmc = $ ("#txt_rwmc"). Val (); rwlb = $ ("#com_rwlb"). combobox ("GetValues"). Join (","); // Aufrufen der Hintergrundexportfunktion var service = new Service ("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 ("Abfrage fehlgeschlagen:"+service.getMessage ()); zurückkehren; } var nodata = odoc.selectsinglenode ("root/nodata"). Text; if (nodata == "nodata") {showMessage ("no data!"); zurückkehren; } // Exportinformationen abrufen var titlename = odoc.selectsinglenode ("root/title_name"). Text; var Filename = odoc.selectsinglenode ("root/file_name"). text; var outputInfo = odoc.selectsinglenode ("root/outputInfo"). Text; var download_path = odoc.selectsinglenode ("root/download_path"). text; if (outputInfo! = "") {showMessage (outputInfo); zurückkehren; } if (bestätigen ("Bestätigen Sie erfolgreich exportieren! Bestätigen Sie die Download -Datei? /n Dateiname ist:"+Dateiname)) {var file = Dateiname; var showFile = Titlename + ".xls"; showFile = decodeuricomponent (showFile); var idx = document.url.indexof ("/adp"); if (idx == -1) {alert ("Host -Adresse kann nicht erkannt werden:" + document.url); zurückkehren; } var host = document.url.substring (0, idx); var width = screen.width; var hohe = screen.height; Debugger; // Öffnen Sie die Download -Seite var param = "Symbollbar = Nein, location = nein, status = yes, resizable = nein, scrollbars = yes, top =" + Höhe + ", links =" + width + ", width = 100, Höhe = 100"; // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- (isie6) {window.location.href = host + "/adp/work/gzkp/common/js/download_new.jsp?file=" + Datei + "& showfile =" + showfile + "& download_path =" + Download_path; } else {window.open (host + "/adp/work/gzkp/common/js/download_new.jsp?file=" + Datei + "& showfile =" + showFile + "& download_path =" + Download_path, "_blank", Param); }}}Öffentliche Kategorie
Paket caais.business.gzkp.common; import Java.io.file; Import Java.io.fileinputStream; Import Java.Text.SimpledateFormat; Import Java.util.date; org.apache.poi2.hssf.usermodel.hsssfrow; import org.apache.poi2.hssf.usmodel.hssfsheet; ctaiis.config.config; import ctaiis.services.data.datawindow; import ctaiis.services.xml.xmldataObject; import ctaiis.services.xml.xmlparser; jxl.write.label; import jxl.write.writableCellFormat; import Jxl.write.writableFont; import Jxl.write.writablesheet; 2004 </p> * <p> Unternehmen: DC </p> * @Author fengzg * @Version 1.0 * Zeit: 2015-12-28 */public createexcel {private endgültige statische String config_File_path = config.ctais_home; WWB = NULL WWB = NULL; XmldataObject xdo = null; public createexcel () {} / ** * generieren excel * @param sql query sql * @param czrydm operator code {HSSFWORKBOOK WB = New HSSFWorkbook (); HSSFSheet Sheet = wb.CreateSheet (); Extexcel Extexcel = New Extexcel (WB, Sheet); StringBuffer sffer = new StringBuffer (); // int colnum = 30; Datawindow dw = datawindow.dynamiccreate (sql.toString ()); DW.SetConnectionName (Icomm.gzkpjndi); langer dwret = dw.retrieve (); if (dwret <= 0) {sffer.Append ("<nodata> nodata </nodata>"); return sffer.toString (); } else {sffer.Append ("<nodata> </nodata>"); } int colnum = dw.getColumnCount (); // Definieren Sie die Spaltenbreite für die Arbeitsblattspalte (ändern Sie die Anzahl der Spalten selbst) für (Short i = 0; i <= colnum; i ++) {Sheet.SetColumnWidth (i, (kurz) 4000); } // Zellstil HSSFcellStyle CellheadStyle = WB.CreateCellStyle (); // Zellzentrum -Alignment CellheadStyle.Setalignment (hssfcellStyle.Align_Center) angeben; // Angeben Sie die vertikal zentrale Ausrichtung von Zellen CellheadStyle.SetverticalInnment (hssfcellStyle.vertical_Center); // Zelllinienverpackung angeben, wenn der Zellgehalt nicht unter CellheadStyle.SetWrapText (true) angezeigt wird. // Cell Font HSSffont Headfont = wb.CreateInt () setzen; Headfont.SetBoldWeight (HSSffont.BoldWeight_bold); Headfont.SetFontName ("安一"); Headfont.SetFontheight ((kurz) 200); cellheadStyle.setfont (Headfont); // Berichts -Header -Datum erstellen dt = neues Datum (); SimpleDateFormat sdt = new SimpledateFormat ("yyyymmddhmmsss"); String sfm = czrydm + "_" + sdt.format (dt); // Säulenhaderextexcel einstellen. HSSFROW row1 = Blatt.CreateRow (1); für (int i = 0; i <titles cell.setencoding (hssfcell.encoding_utf_16); Cell.SetCellStyle (CellheadStyle); cell.setcellValue (Titel [i]); } Object value = ""; // Setzen Sie den Tischstil HssfcellStyle CellStyle = wb.CreateCellStyle (); // Cell Center -Alignment -Zellstyle.Setalignment (hssfcellStyle.Align_Center) angeben; // SetVerverticalInnment (hssfcellStyle.vertical_Center) angeben. // Zelllinienverpackung angeben, wenn der Zellinhalt nicht angezeigt werden kann. // Cell Font HSSffont font = wb.CreateFont () setzen; font.setBoldWeight (hssffont.ss_none); font.setFontName ("宋体"); font.setfontheight ((kurz) 200); CellStyle.SetFont (Schriftart); für (int i = 0; i <dw.getrowCount (); i ++) {hssfrow row = Sheet.Createrow (i+2); für (int j = 1; j <= dw.getColumnCount (); j ++) {hssfcell cell = row.createCell ((kurz) (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 ()); }}} // Setzen Sie den Exportpfad bitte hier, wenn es sich um ein Linux -System handelt, das manuelle Pfaderstellung erfordert (wenn jemand hier klar ist, geben Sie mir bitte einige Ratschläge) Zitieren Sie die neu erstellte Dateipfadstring -Path = "/export/". Datei Datei = neue Datei (Pfad); if (! file.exists ()) {file.mkdirs (); } String Dateiname = sfm+". Xls"; // String pth = path.trim () + file.separator + Dateiname; String pth = path.trim () + Dateiname; pth = pth.trim (); String outputInfo = exportexcel.outputExcel (PTH); sffer.append ("<title_name>" + sfm + "</title_name>"); sffer.append ("<Download_path>" + path + "</download_path>"); Sffer.Append ("<File_Name>" " + Dateiname +" </file_name> ");Hintergrundcode
/*** Exportfunktion* @param xDo Vordergrundparameter* @param czrydm operator code* @return generierte XLS -Informationen* @throw Exception Beschreibung*/public String exportexcel (xmldataObject args, String czrydm) löst Ausnahme aus {// Abfrage Parameter, die von den Vordergästen bestanden haben, rwmc = rwmc = rwmc = rwmc = StringEx.snull (args.getItemValue ("rwmc")); String rwlb = stringEx.snull (args.getItemValue ("rwlb")); if (null! = rwmc &&! ". } if (null! = rwlb &&! ". } StringBuilder SQL = new StringBuilder (); // Abfrage SQL SQL.Append ("RWXH, RWMC von rwxx") .Append (SQLwhere) .Append ("Order by rwxh)") .And (SQLISWO); // Exportierte Spalte Title String [] Titel = {"Task -Seriennummer", "Taskame"}; // die öffentliche Klasse createExcel excel = new Createexcel () instanziieren; return excel.newtoexcel (SQL.ToString (), Czrydm, Titel, "Exlcel Header"); }Die obige Methode zum Exportieren von Excel (unterstützende IE -niedrige Version) ist der gesamte Inhalt, den ich mit Ihnen geteilt habe. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.