اليوم أريد فرز مشكلة واجهتها منذ بعض الوقت.
بسبب متطلبات المشروع ، يجب إجراء جزء من وظيفة التصدير. استخدمت تصدير الشركة في البداية ، لكن كان من الغريب أن بعض الوحدات أبلغت عن خطأ قدره 500 عند التصدير. لقد وجدت أنه بعد حذف بعض الحقول ، عاد إلى طبيعته. في ذلك الوقت ، نظرًا لأن المشروع كان ضيقًا ، فقد حذفت بعضًا مؤقتًا ، لكنه لم يكن حلاً طويل الأجل. في وقت لاحق ، قمت بمراجعة وفرزته على أساس أصلي. العملية الحالية لا تزال مستقرة. سوف أشاركها معك.
يتطلب التصدير ثلاثة أجزاء و JS والأساليب العامة وطرق الخلفية.
رمز JS
دالة exportData () {// المعلمات التي تلقاها RWMC = $ ("#txt_rwmc"). val () ؛ rwlb = $ ("#com_rwlb"). comboBox ("getValues"). انضمام ("،") ؛ // استدعاء وظيفة تصدير الخلفية var 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 ("فشل الاستعلام:"+service.getMessage ()) ؛ يعود؛ } var nodata = odoc.selectsinglenode ("root/nodata"). النص ؛ if (nodata == "nodata") {showMessage ("no data!") ؛ يعود؛ } // الحصول على معلومات التصدير 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) ؛ يعود؛ } if (تأكيد ("تصدير بنجاح! تأكد من ملف التنزيل؟ /n اسم الملف هو:"+filename)) {var file = filename ؛ var showfile = titlename + ".xls" ؛ showfile = decodeuricomponent (showfile) ؛ var idx = document.url.indexof ("/adp") ؛ if (idx == -1) {Alert ("لا يمكن التعرف على عنوان المضيف:" + document.url) ؛ يعود؛ } var host = document.url.substring (0 ، idx) ؛ var width = screen.width ؛ var height = screen.hight ؛ تصحيح الأخطاء // افتح صفحة التنزيل var param = "toolbar = no ، location = no ، status = yes ، resizable = no ، scrollbars = yes ، top =" + height + "، left =" + width + "، width = 100 ، height = 100" ؛ ) (isie6) {window.location.href = host + "/adp/work/gzkp/common/js/download_new.jsp؟file=" + file + "& showfile =" + showfile + "& download_path =" + download_path ؛ } آخر {window.open (Host + "/adp/work/gzkp/common/js/download_new.jsp؟file=" + file + "& showfile =" + showfile + "& download_path =" download_path ، "_blank" ، param) ؛ }}}الفئة العامة
package ctais.business.gzkp.common ؛ import java.io org.apache.poi2.hssf.usermodel.hssfrow ؛ import org.apache.poi2.hssf.usermodel.hssfsheet ؛ import org.apache.poi2.hssf.usermodel.hssfworkbook ؛ ctaiis.config.config ؛ استيراد ctaiis.services.data.datawindow ؛ استيراد ctaiis.services.xml.xmldataobject ؛ استيراد ctaiis.services.xml.xmlparser jxl.write.label ؛ import jxl.write.writableCellformat ؛ import jxl.write.writable ؛ import jxl.write.writablesheet ؛ import jxl.write.write 2004 </p> * <p> الشركة: DC </p> * Author Fengzg * version 1.0 * الوقت: 2015-12-28 */public createExcel {private Final Static String Config_File_Path = config.ctais_home ؛ WritableWorkbook wwb = null ؛ xmldataobject xdo = null ؛ Public CreateExcel () {} / ** * إنشاء excel * param sql query sql * param czrydm رمز المشغل * @param tructions title title * @param exltitle excel table header * trant exltitle exltitle HSSFWORKBOOK WB = NEW HSSFWorkBook () ؛ ورقة HSSFSHEET = wb.createshet () ؛ Exportexcel orportexcel = تصدير جديد (WB ، ورقة) ؛ 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 ("<fodata> nodata </folata>") ؛ إرجاع sffer.toString () ؛ } آخر {sffer.append ("<nodata> </folata>") ؛ } int colnum = dw.getColumnCount () ؛ // تحديد عرض العمود لعمود ورقة العمل (قم بالفعل بتغيير عدد الأعمدة بنفسك) لـ (قصير i = 0 ؛ i <= colnum ؛ i ++) {sheet.setColumnWidth (i ، (قصيرة) 4000) ؛ } // إنشاء نمط الخلية hssfcellstyle cellheadstyle = wb.createcellstyle () ؛ . . // حدد تغليف خط الخلية عندما لا يتم عرض محتوى الخلية أسفل cellheadstyle.setWraptext (صحيح) ؛ // set cell font hssffont headfont = wb.createfont () ؛ headfont.setboldweight (hssffont.boldweight_bold) ؛ headfont.setfontname ("安一") ؛ headfont.setfontheight ((قصيرة) 200) ؛ cellheadstyle.setfont (headfont) ؛ // إنشاء تقرير رأس تقرير dt = تاريخ جديد () ؛ SimpleDateFormat sdt = جديد spiStFormat ("YyyyMMDDHHMMSSS") ؛ String sfm = czrydm + "_" + sdt.format (dt) ؛ // تعيين رأس العمود orportexcel.createNormalhead (Exltitle ، Colnum-1) ؛ hssfrow row1 = sheet.createrw (1) ؛ من أجل (int i = 0 ؛ i <etleles.length ؛ i ++) {hssfcell cell = row1.createCell ((قصيرة) i) ؛ cell.setencoding (HSSFCell.encoding_utf_16) ؛ cell.setCellStyle (cellheadstyle) ؛ cell.setCellValue (عناوين [i]) ؛ } قيمة الكائن = "" ؛ // قم بتعيين نمط الجدول HSSFCellStyle CellStyle = WB.CreateCellStyle () ؛ // حدد cellstyle . // حدد تغليف خط الخلية عندما لا يمكن عرض محتوى الخلية cellstyle.setWraptext (صحيح) ؛ // set cell font hssffont font = wb.createfont () ؛ font.setboldweight (hssffont.ss_none) ؛ font.setFontName ("宋体") ؛ font.setfontheight ((قصيرة) 200) ؛ cellstyle.setfont (الخط) ؛ لـ (int i = 0 ؛ i <dw.getRowCount () ؛ i ++) {hssfrow row = sheet.createrw (i+2) ؛ لـ (int j = 1 ؛ j <= dw.getColumnCount () ؛ j ++) {hssfcell cell = row.createcell ((قصيرة) (j-1)) ؛ cell.setencoding (HSSFCell.encoding_utf_16) ؛ cell.setCellStyle (cellstyle) ؛ value = dw.getitemany (i ، j-1) ؛ if (value == null) {cell.setCellValue ("") ؛ } آخر {cell.setCellValue (value.toString ()) ؛ }}} // قم بتعيين مسار التصدير ، يرجى ملاحظة أنه إذا كان نظام Linux يتطلب إنشاء مسار يدوي ، (إذا كان شخص ما واضحًا حول السبب هنا ، فالرجاء إعطائي بعض النصائح) اقتبس من مسار سلسلة الملف الذي تم إنشاؤه حديثًا = "/تصدير/" ؛ ملف الملف = ملف جديد (مسار) ؛ if (! file.exists ()) {file.mkdirs () ؛ } string filename = sfm+". xls" ؛ // string pth = path.trim () + file.separator + filename ؛ سلسلة pth = path.trim () + اسم الملف ؛ pth = pth.trim () ؛ String outputInfo = exportexcel.outputexcel (PTH) ؛ sffer.append ("<title_name>" + sfm + "</title_name>") ؛ sffer.append ("<تنزيل_باث>" + path + "</download_path>") ؛ sffer.append ("<iled_name>" " + filename +" </file_name> ") ؛ sffer.append (" <rupectInfo> " + outputinfo +" </outputinfo> ")رمز الخلفية
/*** وظيفة التصدير* param xdo foreground parameter* param czrydm code* @return information* @throws description*/public string orportexcel ( Stringex.snull (args.getItemValue ("RWMC")) ؛ string rwlb = stringex.snull (argS.getItemValue ("rwlb")) ؛ if (null! = rwmc &&! " } if (null! = rwlb &&! " } stringBuilder sql = new StringBuilder () ؛ // clicing query sql sql.append ("Select RWXH ، RWMC from rwxx") .Append (sqlwhere) .Append ("Order by RWXH)") .Append (sqliswhere) ؛ // تصدير سلسلة عنوان العمود [] العناوين = {"رقم التسلسل المهمة" ، "اسم المهمة"} ؛ // Instantiate the Public Class CreateExcel excel = new CreateExcel () ؛ return excel.newtoexcel (sql.toString () ، czrydm ، utles ، "exlcel header") ؛ }الطريقة المذكورة أعلاه لتصدير Excel (دعم IE Low Person) هي كل المحتوى الذي شاركته معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.