ในแอปพลิเคชันจริงข้อมูลมักจะต้องส่งออกไปยัง Excel นอกเหนือจากการส่งออก AS-IS แล้วยังมีการส่งออก Pagination, การส่งออกแผ่นปัสสาวะและการส่งออกข้อมูลขนาดใหญ่ สำหรับ Excel2003 จำนวนแถวและคอลัมน์สูงสุดของแต่ละแผ่นมี จำกัด เมื่อส่งออกปริมาณข้อมูลขนาดใหญ่หลายแผ่นจะถูกแบ่งตามค่าเริ่มต้นและ Excel2007 จะไม่มีปัญหาดังกล่าว วิธีการส่งออกเหล่านี้มีอินเทอร์เฟซที่แตกต่างกันในการใช้งานในโปรแกรม Java:
1. การส่งออกตามที่เป็นอยู่
ส่งออกเช่นเดียวกับการส่งออก Excel โดยไม่ต้องดูตัวอย่าง
รหัสอินเทอร์เฟซโปรแกรมมีดังนี้:
outputStream = ใหม่ fileOutputStream (ไฟล์ใหม่ ("e: //excelexport.xls")); excelexporter excel = new excelexporter (); // ส่งออก 2007 outputStream = ใหม่ fileOutputStream (ไฟล์ใหม่ ("e: //excelexport.xlsx")); excel excel2007exporter excel = new excel2007exporter (); excel.export (outputstream, rworkbook);ภาพการทำซ้ำ:
2. การส่งออกการปนเปื้อน
การส่งออกการปนเปื้อน หากเทมเพลตรายงานถูก paginated มันจะถูกส่งออกในรูปแบบของผลการปนเปื้อนและชื่อที่ซ้ำกัน ฯลฯ จะถูกทำซ้ำ
รหัสอินเทอร์เฟซโปรแกรมมีดังนี้:
outputStream = ใหม่ fileOutputStream (ไฟล์ใหม่ ("e: //pageExcelexport.xls")); pageExcelexporter หน้า = ใหม่ pageExcelexporter (reportutils.getPaperSettingListtingListFromworkbook (rorkbook)); // ส่งออก 2007 outputStream = ใหม่ fileOutputStream (ไฟล์ใหม่ ("e: //pageExcelexport.xlsx")); excel PageExcel2007Exporter page = new PageExcel2007Exporter(ReportUtils.getPaperSettingListFromWorkBook(rworkbook)); page.export (outputstream, rworkbook);ภาพการทำซ้ำ:
3. หน้าส่งออกเป็นแผ่น
เมื่อหน้าถูกส่งออกแต่ละหน้าของผลลัพธ์รายงานจะถูกบันทึกไว้ในไฟล์ Excel
รหัสมีดังนี้:
outputStream = ใหม่ fileOutputStream (ไฟล์ใหม่ ("e: //pagesheetexcelexport.xls")); PAGETOSHEETEXCELEEXPORTER SHEET = ใหม่ PAGETOSHEETEXCELEEXPORTER (ReportUtIls.getPaperSettingListFromWorkBook (ROWBOOK)); // ส่งออก 2007 outputStream = ใหม่ fileOutputStream (ไฟล์ใหม่ ("e: //pagesheetexcelexport.xlsx")); Excel PagetosheetExcel2007EXPORTER SHEET = ใหม่ PAGETOSHEETEXCEL2007EXPORTER (PROGREETILS.GETPAPERSETTINGLISTFROMWORKBOOK (RWORKBOOK)); sheet.export (outputstream, rworkbook);ภาพการทำซ้ำ:
4. การส่งออกปริมาณข้อมูลขนาดใหญ่
นี่เป็นเรื่องธรรมดามากขึ้นตัวอย่างเช่นไฟล์ excel ที่มีพฤติกรรม 50000
รหัสมีดังนี้:
outputStream = ใหม่ fileOutputStream (ไฟล์ใหม่ ("e: //largeexcelexport.zip")); largedatapageExcelexporter ขนาดใหญ่ = ใหม่ largedatapageExcelexporter (reportutils.getPaperSettingListtingListFromworkbook (rworkbook), จริง); // ส่งออก 2007 outputStream = ใหม่ fileOutputStream (ไฟล์ใหม่ ("e: //largeexcelexport.xlsx")); Excel largedatapageExcel2007Exporter ขนาดใหญ่ = ใหม่ largedatapageExcel2007Exporter (progressutils.getPapersettingListtingListtingListtingListtingListFromworkbook (rworkbook), จริง); ขนาดใหญ่ export (outputstream, rworkbook);เมื่อส่งออกรายงานจากปริมาณข้อมูลขนาดใหญ่สถานการณ์สองสถานการณ์ต่อไปนี้อาจเกิดขึ้น:
1. หากการส่งออกสำเร็จข้อมูลจะแสดงในหลายแผ่น
2. สอง. การส่งออกล้มเหลวและเนื้อหา Excel ที่ส่งออกไม่ถูกต้อง มีสองเหตุผลหลักสำหรับสถานการณ์ข้างต้น:
4.1 การส่งออกรายงานปริมาณข้อมูลขนาดใหญ่โดยไม่เปิดใช้งาน Line Engine
หากไม่มีการเปิดใช้งานเครื่องยนต์บรรทัดสองสถานการณ์จะเกิดขึ้นเช่นกัน: การส่งออกจะสำเร็จหากเซิร์ฟเวอร์สามารถแบกรับได้และการส่งออกจะล้มเหลวหากเซิร์ฟเวอร์ไม่สามารถแบกรับได้ มาดูผลลัพธ์ด้านล่าง:
4.1.1 เซิร์ฟเวอร์อยู่ในขอบเขตของ
ช่วงที่ยอมรับได้คือ: ปริมาณของข้อมูลมีขนาดใหญ่เกินจำนวนแถวสูงสุดของ Excel แต่ไม่ใหญ่มากเช่น 100,000 ชิ้นและข้อมูลไม่ซับซ้อนและสามารถส่งออกได้ตามปกติหากหน่วยความจำเพียงพอและเครือข่ายไม่ถูกขัดจังหวะ เมื่อส่งออกข้อมูลที่เกินแถวสูงสุดหรือคอลัมน์ของ Excel จะแสดงในแผ่นถัดไป อย่างไรก็ตาม Excel มีข้อ จำกัด เกี่ยวกับจำนวนแถวและคอลัมน์ ตัวอย่างเช่น Excel 2003 มีขีด จำกัด สูงสุดที่ 65536 แถวและขีด จำกัด สูงสุดของจำนวนคอลัมน์คือ 256 คอลัมน์
4.1.2 เซิร์ฟเวอร์ไม่สามารถทนได้
ช่วงที่ทนไม่ได้คือปริมาณข้อมูลมีขนาดใหญ่และมีขนาดใหญ่มากเช่นแสนล้านหรือหลายล้านหรือมากกว่านั้นและความล้มเหลวของการส่งออกอาจเกิดขึ้นเนื่องจากข้อ จำกัด ของหน่วยความจำ เมื่อผลลัพธ์ถูกส่งออกเนื้อหาของ Excel ที่ไม่สามารถส่งออกไม่ถูกต้อง
สำหรับผลลัพธ์การส่งออกทั้งสองนี้เหตุผลหลักคือปริมาณข้อมูลและความซับซ้อนของข้อมูล (จำนวนคอลัมน์) เท่าใด จะมีจุดวิกฤติโดยไม่มีเครื่องยนต์แถว เมื่อการส่งออกต่ำกว่าจุดวิกฤติเนื้อหาที่ส่งออกจะมีหลายแผ่นมิฉะนั้นการส่งออกจะล้มเหลวและเนื้อหาจะไม่ถูกต้อง ดังนั้นสำหรับรายงานปริมาณข้อมูลขนาดใหญ่มักจะแสดงโดยใช้เอ็นจิ้นแถว ในกรณีนี้การส่งออก Excel จะประสบความสำเร็จเสมอ เมื่อรายงานปริมาณข้อมูลขนาดใหญ่ที่เปิดใช้งาน Line Engine ถูกส่งออกไปยัง Excel พวกเขาจะถูกแบ่งออกเป็นไฟล์. xls หลายไฟล์และถูกโอนไปยังไคลเอนต์ในรูปแบบของไฟล์แพ็คเกจที่บีบอัด
4.2 เปิดใช้งานการส่งออกเครื่องยนต์สายของรายงานปริมาณข้อมูลขนาดใหญ่
สำหรับรายงานปริมาณข้อมูลขนาดใหญ่มักจะนำเสนอโดยใช้เอ็นจิ้นแถวและในกรณีนี้การส่งออก Excel จะประสบความสำเร็จเสมอ เนื่องจากเมื่อส่งออก Excel ด้วยรายงานปริมาณข้อมูลขนาดใหญ่ของเอ็นจิ้นไลน์จะแบ่งออกเป็นไฟล์. xLS หลายไฟล์และถูกถ่ายโอนไปยังไคลเอนต์ในรูปแบบของไฟล์แพ็คเกจที่บีบอัด
ตัวอย่างเช่นรายงานปริมาณข้อมูลขนาดใหญ่มีข้อมูล 100W แถวและมีการตั้งค่าเอ็นจิ้นแถวและแสดง 30 แถวต่อหน้า ผลลัพธ์ที่ส่งออกจะเป็น 41 Excel 40 Excel แรกจะเป็น 24990 แถวแต่ละ Excel สุดท้ายจะเป็น 400 แถวและ 41 Excel จะถูกบีบอัดลงในแพ็คเกจ ZIP และอัปโหลดไปยังไคลเอนต์เพื่อดาวน์โหลด
เนื้อหาข้างต้นเป็นสี่วิธีในการส่งออก Excel สำหรับเครื่องมือรายงาน Java Finereport ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน!