Сегодня я хочу разобраться с проблемой, с которой я столкнулся некоторое время назад.
Из -за требований проекта должна быть выполнена часть экспортной функции. Я использовал экспорт компании в начале, но было странно, что некоторые модули сообщили об ошибке 500 при экспорте. Я обнаружил, что после удаления некоторых полей он вернулся в норму. В то время, поскольку проект был жестким, я временно удалил некоторые, но это не было долгосрочным решением. Позже я пересмотрел и отсортировал это на первоначальной основе. Текущая операция все еще стабильна. Я поделюсь этим с вами.
Экспорт требует трех частей, JS, общественных методов и методов правых.
JS -код
функция exportData () {// Параметры, полученные на переднем плане rwmc = $ ("#txt_rwmc"). val (); rwlb = $ ("#com_rwlb"). combobox ("getValues"). Join (","); // Вызов фоновой функции экспорта 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 ("Query не удастся:"+service.getmessage ()); возвращаться; } var nodata = odoc.selectsinglenode ("root/nodata"). Text; if (nodata == "Nodata") {showmessage ("Нет данных!"); возвращаться; } // Получить информацию об экспорте var titlename = odoc.selectsinglenode ("root/title_name"). Text; var filename = odoc.selectsinglenode ("root/file_name"). Text; var outputInfo = odoc.selectsingLenode ("root/outputInfo"). Текст; var download_path = odoc.selectsinglenode ("root/download_path"). Text; if (outputInfo! = "") {showmessage (outputInfo); возвращаться; } if (enform ("Экспорт успешно! Подтвердите файл загрузки? /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.height; отладчик; // Откройте страницу загрузки 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; } else {window.open (host + "/adp/work/gzkp/common/js/download_new.jsp?file=" + file + "& showfile =" + showfile + "& download_path =" + download_path, "_blank", param); }}}Общественная категория
Пакет ctais.business.gzkp.common; импорт java.io.file; import java.io.fileinputstream; import java.text.simpledateformat; импорт java.util.date; импорт org.apache.poi2.hssf.usermodel.hssfcell; org.apache.poi2.hssf.usermodel.hssfrow; import org.apache.poi2.hssf.usermodel.hssfsheet; импорт org.apache.poi2.hssf.usermodel.hssfworkbook; import ctaiis.busesness.dashboard.service.excport. ctaiis.config.config; import ctaiis.services.data.datawindow; import ctaiis.services.xml.xmldataobject; импорт ctaiis.services.xml.xmlparser; import ctaiis.util.stringex; импорт jxl.momply.formatment. jxl.write.label; import jxl.write.writablecellformat; import jxl.write.writeblefont; import jxl.write.writableSheet; import jxl.write.writefortworkbook;/** * <p> Название: генерируйте файл Excel </p> * <p> Описание: Convert Strling string в Excel Document </p> PORIGE (P> PORIGE (P> COPYRIGE (P> COPYRIGE <P> COPYRIGE <P> 2004 </p> * <p> Компания: DC </p> * @author fengzg * @version 1.0 * Время: 2015-12-28 */public class createexcel {private final Static String config_file_path = config.ctais_home; Writeableworkbook wwb = null; Xmldataobject xdo = null; public createeExcel () {} / ** * * Generate Excel * @param sql Query sql * @param czrydm operator code * @param заголовок экспорта; HSSFWorkBook WB = новый HSSFWorkBook (); HSSFSHEET SHILE = WB.CreateSheet (); ExportExcel ExportExcel = new ExportExcel (WB, лист); StringBuffer sffer = new StringBuffer (); // int colnum = 30; DataWindow dw = dataWindow.dynamicCreate (sql.tostring ()); dw.setconnectionname (icomm.gzkpjndi); длинный dwret = dw.retrive (); if (dwret <= 0) {sffer.append ("<dodata> nodata </nodata>"); вернуть sffer.toString (); } else {sffer.append ("<dodata> </nodata>"); } int colnum = dw.getColumnCount (); // Определите ширину столбца для столбца рабочего листа (фактически измените количество столбцов самостоятельно) для (короткий i = 0; i <= colnum; i ++) {sheate.setcolumnwidth (i, (short) 4000); } // Создание стиля ячейки hssfcellstyle cellheadstyle = wb.createcellstyle (); // указать выравнивание клеточного центра CellheadStyle.SetAlignment (hssfcellstyle.align_center); // Указание ячейки вертикально центральное выравнивание CellHeadStyle.SetVerticalAlignment (hssfcellstyle.vertical_center); // указать обертывание линии ячейки, когда содержимое ячейки не отображается ниже CellHeadStyle.SetWrapText (true); // Установить шрифт ячейки hssffont headfont = wb.createfont (); headfont.setboldweight (hssffont.boldweight_bold); HeadFont.SetFontName ("安一"); Headfont.SetFonTheight ((короткий) 200); cellheadstyle.setfont (Headfont); // Создать дату заголовка отчета dt = new Date (); SimpleDateFormat sdt = new SimpleDateFormat ("yyyyMmddhhmmsss"); String sfm = czrydm + "_" + sdt.format (dt); // установить заголовок столбца ExportExcel.createNormalhead (Exltitle, Colnum-1); Hssfrow row1 = лист.createrow (1); for (int i = 0; i <titles.length; i ++) {hssfcell cell = row1.createCell ((короткий) i); cell.Setencoding (hssfcell.encoding_utf_16); cell.SetCellStyle (CellheadStyle); cell.SetCellValue (названия [i]); } Object value = ""; // Установить стиль стола hssfcellstyle cellstyle = wb.createcellstyle (); // указать выравнивание клеточного центра CellStyle.SetAlignment (hssfcellstyle.align_center); // Указание ячейки вертикально центрального выравнивания CellStyle.SetVerticalAlignment (hssfcellstyle.vertical_center); // указать обертывание линии ячейки, когда содержание ячейки не может быть отображено. // Установить шрифт ячейки hssffont font = wb.createfont (); font.setBoldEwele (hssffont.ss_none); font.setFontName ("宋体"); font.setfontheeth ((короткий) 200); cellStyle.setFont (Font); for (int i = 0; i <dw.getRowCount (); i ++) {hssfrow row = sheet.createrow (i+2); for (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 (""); } else {cell.setCellValue (value.toString ()); }}} // Установите путь экспорта, обратите внимание, что, если это система Linux, которая требует ручного создания пути, (если кто -то ясно о причине здесь, пожалуйста, дайте мне несколько советов) Цитируйте вновь созданный путь пути файла string = "/export/"; File file = new File (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 ("<tite_name>" + sfm + "</title_name>"); sffer.append ("<douck_path>" + path + "</download_path>"); sffer.append ("<file_name>" " + filename +" </file_name> "); sffer.append (" <suputInfo> " + outputInfo +" </outputInfo> "); return sffer.toString ();} catch (Exception e) {e.printStackTrace (); throw exception (exectmess);Фоновый код
/*** Функция экспорта* @param xdo Переднее параметр* @param czrydm operator code* @return gened xls* @throhs исключение Описание*/public String exportexcel (xmldataobject args, string czrydm). Stringex.snull (args.getitemvalue ("rwmc")); String rwlb = stringex.snull (args.getitemvalue ("rwlb")); if (null! = rwmc &&! ". } if (null! = rwlb &&! "". equals (rwlb)) {sqlwhere.append ("и a.rwlb_dm = '"+rwlb+"'"); } StringBuilder sql = new StringBuilder (); // Запрос сплайсинга SQL SQL.Append («Выберите rwxh, rwmc из Rwxx») .append (sqlwhere) .append («Порядок rwxh)») .append (sqliswhere); // exported title struct string [] titles = {"серийный номер задачи", "Имя задачи"}; // создание публичного класса Createexcel Excel = new CreateExcel (); return Excel.newtoExcel (sql.toString (), czrydm, названия, "exlcel header"); }Приведенный выше метод экспорта Excel (поддержка IE Lower) - это весь контент, который я поделился с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.