في التطبيقات الفعلية ، غالبًا ما تكون هناك حاجة إلى تصدير البيانات إلى Excel. بالإضافة إلى تصدير AS-IS ، هناك أيضًا تصدير ترقيم الصفحات وتصدير ورقة الصفحات وتصدير البيانات الكبيرة. بالنسبة لـ Excel2003 ، يكون الحد الأقصى لعدد الصفوف والأعمدة لكل ورقة محدودة. عند تصدير أحجام البيانات الكبيرة ، سيتم تقسيم أوراق متعددة بشكل افتراضي ، ولن تواجه Excel2007 مثل هذه المشكلات. تحتوي طرق التصدير هذه على واجهات مختلفة للتنفيذ في برامج Java:
1. التصدير كما هو
التصدير كما هو فقط لتصدير Excel دون معاينة
رمز واجهة البرنامج كما يلي:
OutputStream = fileOutputStream جديد (ملف جديد ("e: //excelexport.xls")) ؛ excelexporter excel = new excelexporter () ؛ // Export 2007 OutputStream = newOutputStream (ملف جديد ("E: //excelexport.xlsx")) ؛ excel excel2007exporter excel = new excel2007exporter () ؛ Excel.Export (OutputStream ، Rworkbook) ؛صورة التكاثر:
2. صمام الصدفة
تصدير ترقيم الصفحات. إذا تم ترتيب قالب التقرير ، فسيتم تصديره في شكل نتائج تراجع ، وسيتم تكرار العناوين المكررة ، وما إلى ذلك.
رمز واجهة البرنامج كما يلي:
outputStream = جديد fileOutputStream (ملف جديد ("E: //pageexcelexport.xls")) ؛ pageexcelexporter page = new pageexcelexporter (reportUtils.getPapersetTingListFrombook (Rworkbook)) ؛ // Export 2007 OutputStream = newOutputStream (ملف جديد ("E: //pageExcelExport.xlsx")) ؛ excel pageexcel2007exporter الصفحة = جديد pageexcel2007exporter (ReportUtils.getPaperSettingListFromworkbook (rworkbook)) ؛ page.export (OutputStream ، Rworkbook) ؛صورة التكاثر:
3. صفحات التصدير في الأوراق
عند تصدير الصفحة ، يتم حفظ كل صفحة من نتيجة التقرير في ملف Excel.
الرمز كما يلي:
outputStream = جديد fileOutputStream (ملف جديد ("E: //pageshetexcelexport.xls")) ؛ ورقة PageToSheetexcelExporter = New PageToSheetExcelExporter (ReportUtils.getPaperSettingListflistfrombook (Rworkbook)) ؛ // Export 2007 إصدار OutputStream = جديد fileOutputStream (ملف جديد ("e: //pageshetexcelexport.xlsx")) ؛ excel pagetosheetexcel2007exporter sheet = new PageToSeExcel2007Exporter (ReportUtils.getPapersettingListFromworkbook (Rworkbook)) ؛ seet.export (OutputStream ، rworkbook) ؛صورة التكاثر:
4. تصدير حجم البيانات الكبيرة
هذا أكثر شيوعًا ، على سبيل المثال ، ملف Excel مع 50000 سلوك
الرمز كما يلي:
OutputStream = جديد fileOutputStream (ملف جديد ("e: //largeexcelexport.zip")) ؛ largedatapageExcelExporter كبير = جديد largedatapageExcelExporter (ReportUtils.getPaperSettingListFromworkbook (Rworkbook) ، True) ؛ // Export 2007 إصدار OutputStream = جديد fileOutputStream (ملف جديد ("e: //largeexcelexport.xlsx")) ؛ excel largedatapageExcel2007exporter كبير = جديد largedatapageExcel2007exporter (ReportUtils.getPapersettingListFrombook (Rworkbook) ، True) ؛ charge.export (OutputStream ، rworkbook) ؛عند تصدير التقارير من أحجام البيانات الكبيرة ، قد تحدث حالتين التاليتين:
1. إذا نجح التصدير ، فسيتم عرض البيانات في أوراق متعددة ؛
2. اثنان. فشل التصدير وتصدير محتوى Excel غير صالح. هناك سببان رئيسيان للوضع أعلاه:
4.1 تصدير تقارير حجم البيانات الكبيرة دون تمكين محرك الخط
بدون تمكين محرك الخط ، ستحدث حالتان أيضًا: التصدير ناجح إذا تمكن الخادم من تحمله ، وفشل التصدير إذا لم يتمكن الخادم من تحمله. لنلقي نظرة على النتائج أدناه:
4.1.1 الخادم ضمن نطاق
النطاق المقبول هو: كمية البيانات كبيرة ، تتجاوز الحد الأقصى لعدد صفوف Excel ولكن ليس كبيرًا جدًا ، مثل 100000 قطعة ، ولا تكون البيانات معقدة ، ويمكن تصديرها عادةً إذا كانت الذاكرة كافية ولم يتم مقاطعة الشبكة. عند التصدير ، سيتم عرض البيانات التي تتجاوز الحد الأقصى للصف أو عمود Excel في الورقة التالية. ومع ذلك ، فإن Excel لديه حد لعدد الصفوف والأعمدة. على سبيل المثال ، لدى Excel 2003 الحد الأقصى لـ 65536 صفًا ، والحد الأقصى لعدد الأعمدة هو 256 عمود.
4.1.2 لا يمكن للخادم تحمله
النطاق الذي لا يطاق هو أن حجم البيانات كبير وكبير جدًا ، مثل مئات الآلاف أو الملايين أو أكثر ، وقد يحدث فشل التصدير بسبب قيود الذاكرة. عند تصدير النتيجة ، يكون محتوى Excel الذي فشل في التصدير غير صالح.
بالنسبة لهذين نتيجتين للتصدير ، فإن السبب الرئيسي هو مقدار حجم البيانات وتعقيد البيانات (عدد الأعمدة). ستكون هناك نقطة حرجة بدون محرك صف. عندما يكون التصدير أقل من النقطة الحرجة ، سيكون للمحتوى الذي تم تصديره أوراق متعددة ، وإلا سيفشل التصدير وسيكون المحتوى غير صالح. لذلك ، بالنسبة لتقارير حجم البيانات الكبيرة ، يتم عرضه عادةً باستخدام محرك صف. في هذه الحالة ، يكون تصدير Excel ناجحًا دائمًا. عندما يتم تصدير تقارير حجم البيانات الكبيرة التي تدعم المحرك إلى Excel ، يتم تقسيمها إلى ملفات .XLS متعددة ويتم نقلها إلى العميل بتنسيق ملف حزمة مضغوط.
4.2 تمكين تصدير محرك الخط من تقارير حجم البيانات الكبيرة
بالنسبة لتقارير حجم البيانات الكبيرة ، يتم تقديمه عادةً باستخدام محرك صف ، وفي هذه الحالة ، يكون تصدير Excel ناجحًا دائمًا. لأنه عند تصدير Excel مع تقرير حجم البيانات الكبير لمحرك الخط ، يتم تقسيمه إلى ملفات .XLS متعددة ويتم نقلها إلى العميل بتنسيق ملف حزمة مضغوط.
على سبيل المثال ، يحتوي تقرير حجم البيانات الكبير على صفوف 100 واط من البيانات ، ويتم إعداد محرك صف ، ويتم عرض 30 صفًا لكل صفحة. ستكون النتيجة التي تم تصديرها 41 Excel ، وستكون أول 40 Excel هي 24990 صفًا لكل منها ، وسيكون Excel الأخير 400 صف ، وسيتم ضغط 41 Excel في حزم مضغوطة وتحميلها على العميل للتنزيل.
المحتوى أعلاه هو أربع طرق لتصدير Excel لأداة تقرير Java Finereport. آمل أن يكون ذلك مفيدًا للجميع!