เนื่องจากข้อกำหนดของโครงการข้อมูลจะต้องถูกส่งออกไปยังตาราง Excel และสามารถเลือกและดาวน์โหลดรายการส่งออกได้ เฟรมเวิร์กสปริง+mybatis+springmvc ที่ใช้โดยโครงการใช้เพื่อส่งออก Excel โดยใช้ Apache Poi กรุณาใช้ Poi บน Baidu โดยไม่ต้องกังวลใจเพิ่มเติมโปรดเพิ่มรหัส
รหัส ExportExcelutil
แพ็คเกจ com.rixin.common.util; นำเข้า java.io.OutputStream; นำเข้า java.lang.reflect.method; นำเข้า java.net.urlencoder; นำเข้า java.util.collection; นำเข้า Java.util.iterator; org.apache.poi.hssf.usermodel.hssfcell; นำเข้า org.apache.poi.hssf.usermodel.hssfcellstyle; นำเข้า org.apache.poi.hssf.usermodel.hssfrow; นำเข้า org.apache.poi.poi.poi.poi.poi.poi.poi.poi.poi.poi.poi.poi.poi. org.apache.poi.hssf.usermodel.hssfworkbook; นำเข้า org.apache.poi.ss.usermodel.font;/** * Javaee Export Tool Class ตาม poi * * @author wjmisaboy.com ชื่อไฟล์ * ชื่อไฟล์เช่น: "ตารางนักเรียน" * @param excelheader * อาร์เรย์ส่วนหัวของตาราง Excel, จัดเก็บ "ชื่อ" ชื่อ "สตริง" ชื่อ "เป็นแถวส่วนหัวของ Excel และ" ชื่อ "เป็นชื่อฟิลด์วัตถุ * @param datalist * การรวบรวมข้อมูล */สาธารณะคงที่ <T> HSSFWORKBOOK EXPORTS (HTTPSERVLETRESSESSENCE, การตอบกลับชื่อไฟล์สตริง, สตริง [] ExcelHeader, คอลเลกชัน <t> Datalist) โยนข้อยกเว้น {// ตั้งค่าการตอบสนองการร้องขอ Response.SetheAder ("เนื้อหา-การจัดสรร", "เอกสารแนบ; filename =" + urlencoder.encode (ชื่อไฟล์ + ".xls", "UTF-8")); // สร้างสมุดงานที่สอดคล้องกับไฟล์ excel hssfworkbook wb = hssfworkbook ใหม่ (); // ตั้งค่าสไตล์ HSSFCELLSTYLE TITLESTYLE = WB.CreateCellStyle (); // ตั้งค่าสไตล์เซลล์ชายแดน titlestyle.setBorderTop (hssfcellstyle.border_thin); // เส้นขอบด้านบนเส้นขอบเส้นขอบบาง ๆ titlestyle.setBorderbottom (hssfcellstyle.border_thin); // เส้นขอบด้านล่าง titlestyle.setBorderright (hssfcellstyle.border_thin); // เส้นขอบบางขอบเส้นขอบด้านขวา // ตั้งค่าการจัดตำแหน่งเซลล์ titlestyle.setalignment (hssfcellstyle.align_center); // ศูนย์กลางแนวนอน titlestyle.setverticalalignment (hssfcellstyle.vertical_center); // center แนวตั้ง // ตั้งค่าตัวอักษรสไตล์ตัวอักษร titlefont = wb.createfont (); titlefont.setfontheightinpoints ((สั้น) 15); // ฟอนต์ความสูง titlefont.setFontName ("bold"); // FONT Style TitleStyle.SetFont (TitleFont); // เพิ่มแผ่นงานในสมุดงานที่สอดคล้องกับแผ่นงานในไฟล์ HSSFSheet = WB.Createsheet (ชื่อไฟล์); // สตริงอาร์เรย์ชื่อเรื่อง [] titleArray = สตริงใหม่ [excelheader.length]; // ฟิลด์ชื่อสตริงอาร์เรย์ [] fieldArray = สตริงใหม่ [excelheader.length]; สำหรับ (int i = 0; i <excelheader.length; i ++) {string [] temparray = excelheader [i] .split ("#"); // อาร์เรย์ชั่วคราวแยก# titlearray [i] = temparray [0]; fieldArray [i] = temparray [1]; } // เพิ่มแถวชื่อในแผ่น HSSFROW ROW = SHEET.CREATEROW ((int) 0); // จำนวนแถวเริ่มต้นที่ 0 HSSFCELL SEQUENCECELL = ROW.CREATECELL (0); // คอลัมน์เซลล์เริ่มต้นที่ 0 และเพิ่มลำดับลำดับลำดับ SequenceCell.SetCellStyle (TitleStyle); sheet.autosizeColumn (0); // ตั้งค่าความกว้างโดยอัตโนมัติ // กำหนดค่าให้กับแถวชื่อสำหรับ (int i = 0; i <titlearray.length; i ++) {hssfcell titlecell = row.createCell (i +1); // 0 บิต titlecell.setcellstyle (Titlestyle); Sheet.AutosizeColumn (i + 1); // 0 บิตถูกครอบครองโดยหมายเลขซีเรียลดังนั้น +1} // รูปแบบข้อมูลจะต้องตั้งค่าแยกต่างหากเนื่องจากชื่อและรูปแบบข้อมูลที่แตกต่างกัน // ตั้งค่า Data Border Datastyle.SetBorderBottom (hssfcellstyle.border_thin); datastyle.setBorderTop (hssfcellstyle.border_thin); datastyle.setBorderLeft (hssfcellstyle.border_thin); datastyle.setBorderright (hssfcellstyle.border_thin); // ตั้งค่ารูปแบบกลาง datastyle.setAlignment (hssfcellstyle.align_center); // ศูนย์กลางแนวนอน datastyle.setverticalalignment (hssfcellstyle.vertical_center); // center แนวตั้ง // ตั้งค่าตัวอักษรฟอนต์ DataFont = wb.createFont (); datafont.setfontheightinpoints ((สั้น) 12); // ตัวอักษรความสูง datafont.setFontName ("安"); // font datastyle.setfont (datafont); // สำรวจข้อมูลการรวบรวมและสร้าง Iterator แถวข้อมูล <t> it = datalist.iterator (); ดัชนี int = 0; ในขณะที่ (it.hasnext ()) {index ++; // 0 บิตถูกครอบครองดังนั้น +1 row = sheet.createrow (ดัชนี); // กำหนดค่าให้กับหมายเลขลำดับ hssfcell sequencelvalue = row.createCell (0); // ค่าหมายเลขลำดับมักจะเป็นลำดับคอลัมน์ 0 คอลัมน์เสมอ. setsetCellValue (ดัชนี); SequencellValue.setCellStyle (Datastyle); Sheet.AutosizeColumn (0); t t = (t) it.next (); // การใช้การสะท้อนแบบไดนามิกเรียกใช้วิธี getxxx () ที่สอดคล้องกันตามอาร์เรย์ชื่อฟิลด์ที่ผ่านมารับค่าแอตทริบิวต์สำหรับ (int i = 0; i <fieldArray.length; i ++) {hssfcell datacell = row.createCell (i+1); Datacell.SetCellStyle (Datastyle); Sheet.AutosizeColumn (i + 1); String fieldName = fieldArray [i]; String getMetHodName = "get" + fieldName.substring (0, 1) .touppercase () + fieldName.substring (1); // รับคลาสวิธี getXxx () ที่สอดคล้องกัน <? ขยายวัตถุ> tcls = t.getClass (); // ทั่วไปเป็นวัตถุและ subclasses ของวัตถุทั้งหมดวิธี getMethod = tcls.getMethod (getMethodname, คลาสใหม่ [] {}); // รับค่าวิธีการที่สอดคล้องกัน datacell.setCellValue (value.toString ()); // กำหนดค่าให้กับคอลัมน์ปัจจุบัน}}} outputStream outputStream = response.getOutputStream (); // เปิดสตรีม wb.write (outputstream); // hssfworkbook เขียนสตรีม outputStream.close (); // close stream return wb; } // XSSFCELLSTYLE.ALIGN_CENTER CENTER การจัดตำแหน่ง // XSSFCELLSTYLE.ALIGN_LEFT การจัดตำแหน่งซ้าย // XSSFCELLSTYLE.ALIGN_RIGHT การจัดตำแหน่งขวา // XSSFCELLSTYLE.VERTICAL_TOP การจัดตำแหน่ง xssfcellstyle.vertical_bottom ทางด้านขวา // cellstyle.border_double เส้นสองเส้น // cellstyle.border_thin ขอบบาง // cellstyle.border_medium ขอบกลาง // cellstyle.border_dashed ขอบ dotted edgeรหัสคอนโทรลเลอร์
@RequestMapping ("/ExportProject.do") โมฆะสาธารณะ ExportProject (การตอบสนอง httpservletResponse, การส่งออกสตริง) {String [] excelheader = export.split (","); รายการ <project> ProjectList = ProjectService.getProjects (NULL); ลอง {ExportExcelutil.export (การตอบสนอง, "ตารางโครงการ", Excelheader, ProjectList); } catch (exception e) {e.printstacktrace (); - ส่วนหนึ่งของรหัส JSP
... <div style = "margin-top: 5px;"> <pan> <อินพุต type = "ช่องทำเครื่องหมาย" value = "ชื่อโครงการ#ชื่อ" ชื่อ = "ส่งออก" checked = "ตรวจสอบ"> </span> <อินพุต type = "text" value = "ชื่อโครงการ" disabled = "disabled"
ภาพด้านล่าง
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน