1. บางครั้งเมื่อส่งออก Excel คุณต้องส่งออกตามหมวดหมู่ มีหมวดหมู่ย่อยหลายประเภทภายใต้หมวดหมู่สำคัญหนึ่งประเภทและมีหมวดหมู่ย่อยหลายประเภทภายใต้หมวดหมู่ย่อยเช่นเดียวกับรูปภาพต่อไปนี้:
ไม่ใช่เรื่องยากที่จะบรรลุเป้าหมายนี้
แนวคิดมีดังนี้: หมุนเวียนตามหมวดหมู่ที่สำคัญ ตัวอย่างเช่นข้างต้นคือการปั่นจักรยานตามสามหมวดหมู่สำคัญของวิทยาเขตจางเจียงวิทยาเขต Xuhui และวิทยาเขต Lingang จากนั้นประมวลผลหมวดหมู่รองลงมา เนื่องจากตัวอย่างนี้ไม่เกี่ยวข้องกับการรวมกันจึงเกี่ยวข้องกับการประมวลผลหมวดหมู่ขนาดเล็กเท่านั้น หากคุณต้องการประมวลผลหมวดหมู่ขนาดเล็กคุณยังต้องจัดการกับพวกเขา หลักการดำเนินการเฉพาะนั้นเหมือนกับหมวดหมู่รองลงมา
แต่ละรอบบันทึกประเภทบ้านของวัฏจักรนี้และประเภทบ้านของรอบสุดท้าย เมื่อทั้งสองเหมือนกันแถวสุดท้ายที่จะรวม ++ มิฉะนั้นก็หมายความว่าประเภทบ้านเสร็จสมบูรณ์ (โดยมีเงื่อนไขว่าแต่ละประเภทได้รับคำสั่งตามลำดับเพื่อให้แน่ใจว่าประเภทเดียวกันอยู่ติดกัน) และเริ่มรวมกัน การใช้งานเฉพาะมีดังนี้:
2. ใช้รหัสแนวคิดเฉพาะอยู่ในความคิดเห็นแล้ว
โมฆะสาธารณะ expstatistics (String filepath, String Campuscode) {ลอง {writableworkbook wwb = workbook.createworkbook (ไฟล์ใหม่ (filepath)); jxlformatutil jfu = new Jxlformatutil (); writableSheet ws = wwb.createsheet ("สถิติรายงานบ้าน", 0); String [] Tablehead = {"Campus Name: 20", "บ้านประเภท: 30", "ใช้บ้าน: 30", "พื้นที่ผู้ใช้ (): 20"}; สำหรับ (int i = 0; i <tablehead.length; i ++) {// รูปแบบชื่อของแต่ละคอลัมน์ ws.addcell (ฉลากใหม่ (i, 0, tablehead [i] .split (":") [0], jxlformatutil.wchead)); ws.setColumnView (i, integer.valueof (Tablehead [i] .split (":") [1])); } int col = 1; // เริ่มจากบรรทัด 1 // ตัวแปรต่อไปนี้ใช้เพื่อหลอมรวมเนื้อหาเดียวกัน int percol = col; สตริง perpurpose = ""; // การใช้ก่อนหน้านี้ประเภทสตริงวัตถุประสงค์ = ""; // ประเภทการใช้งานปัจจุบัน int startMergecol = 1; // บรรทัดแรกที่จะหลอมรวม int endmergecol = 0; // บรรทัดสุดท้ายที่จะหลอมรวม boolean flag = true; // ใช้เพื่อบันทึก ถ้า (null! = campuscode &&! "". เท่ากับ (campuscode)) {campuslist = campusdao.findcampusbycode (campuscode); } else {campuslist = campusdao.findcampus (); } สำหรับ (fcxtCampus Campus: Campuslist) {รายการ <fcxtBuild> builds = builddao.statisticsBuilds (Campus.getCampuscode ()); // รับข้อมูลบ้านทั้งหมดถ้า (null! = builds && builds.size ()> 0) LABEL (ROW ++, COL, CAMPUS.GETCAMPUSNAME (), JXLFORMATUTIL.WCCENTER)); วัตถุประสงค์ = build.getusefulpurpose (); ถ้า (ธง) {// ถ้าเป็นลูปแรกให้เริ่มต้น perpurpose เพื่อให้คำพิพากษาครั้งแรกที่ตามมา perpurpose = วัตถุประสงค์; ธง = เท็จ; } ws.addcell (ฉลากใหม่ (แถว ++, col, fcxtbuild.build_usefulpurpose.get (build.get.getusefulpurpose ()), jxlformatutil.wccenter)); if (วัตถุประสงค์ equals (perpurpose)) {endmergecol ++; } else {// เมื่อทั้งสองแตกต่างกันบรรทัดเดียวกันก่อนฟิวชั่น ws.mergecells (1, startmergecol, 1, endmergecol); startMergecol = col; endmergecol = startmergecol; perpurpose = วัตถุประสงค์; } ws.addcell (ฉลากใหม่ (แถว ++, col, fcxtbuild.build_buildingtype.get (build.getBuildingType ()), jxlformatutil.wccenter)); ws.addcell (ฉลากใหม่ (แถว ++, col, build.getBuildarea (). toString (), jxlformatutil.wccenter)); Col ++; } ws.mergecells (0, percol, 0, col-1); percol = col; }} wwb.write (); wwb.close (); } catch (exception e) {e.printstacktrace (); -สรุป
ข้างต้นเป็นคำอธิบายโดยละเอียดของแนวคิดบรรทัดของการรวมเนื้อหาเดียวกันในคอลัมน์เดียวกันเมื่อส่งออก Java Excel ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!