تشترك هذه المقالة بشكل أساسي في مثال رمز كامل على تنفيذ Java الذي يولد رؤوس جدول شجرة Excel. لا يوجد شيء يشرحه ، لذا فقط ألق نظرة على عملية الكود.
تنسيق بيانات المصدر:
String [] TargetNames = {"اسم المؤشر" ، "الوحدة" ، "xx_yy1" ، "xx_yy2_zz1" ، " Income_Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year-Year -سنوي سنوي سنوي سنوي العام العام سنوي العام العام سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي عام سنوي سنوي سنوي سنوي سنوي سنوي سنوي عام سنوي عام سنوي سنوي "يونيو 2017_Main Business Doction_Year Year" ، "June 2017_main Business Deth_This" ، "June 2017_main Business Doction_Moon-Month" ، "June 2017_profit_cumulative" ، "June 2017_profit_year على أساس سنوي سنوي سنوي سنوي سنوي في سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي عام سنوي سنوي سنوي الأذن العام العام العام العام العام العام العام العام العام العام سنوي العام العام العام سنوي العام سنوي العام العام سنوي العام سنوي سنوي سنوي سنوي سنوي سنوي عام سنوي سنوي عام سنويتوليد Excel التالي:
السطر الأول لا ينتمي إلى رأس الشجرة.
شفرة
Splitcell:
package com.zzj.excel ؛ public class splitcell {private string key ؛ private string parentKey ؛ private string value ؛ private int columnIndex ؛ private int rowindex ؛ public splitcell () {} public splitcell (مفتاح السلسلة ، قيمة السلسلة) this.parentKey = ParentKey ؛ this.value = القيمة ؛ this.columnIndex = columnIndex ؛ this.rowindex = rowindex ؛} السلسلة العامة getKey () {return Key ؛} public void setKey (مفتاح السلسلة) {this.key = key ؛} السلسلة العامة getParentKey () {return parentKey ؛} public void setdarekey (string parentkey) {this.parentKey ؛ {this.value = value ؛} public int getColumnIndex () {return columnIndex ؛} public void setColumnIndex (int columnIndex) {this.columnIndex = columnIndex ؛} public int getRowIndex () toString () {return "cellContent [key =" + key + "، parentKey =" + parentKey + "، value =" + value + "، columnIndex =" + columnIndex + "، RowIndex =" + RowIndex + "] ؛}}Mergedcell:
package com.zzj.excel ؛ فئة عامة mergedcell {مفتاح السلسلة الخاصة ؛ سلسلة parentkey الخاصة ؛ قيمة السلسلة الخاصة ؛ private int startC ؛ private int endc ؛ private int startr ؛ private int endr ؛ private boolean leaf = true ؛ setParentKey (String parentKey) {this.parentKey = parentKey ؛} السلسلة العامة getValue () {return value ؛} public void setValue (قيمة السلسلة) {this.value = value ؛ void setendc (int endc) {this.endc = endc ؛}/***** end cell end end end index increment*/public void incendc () {this.endc ++ ؛} public int getStartr () {return startr ؛} public void setStartr (int startr) SETENDR (int endr) {this.endr = endr ؛} public boolean isLeaf () {return leaf ؛} public void setleaf (ورقة منطقية) {this.leaf = leaf ؛}@override public string toString () {return "cellinfo endc = " + endc +" ، startr = " + startr +" ، endr = " + endr +" ، leaf = " + leaf +"] "؛}}النقل الخلوي:
package com.zzj.excel ؛ استيراد java.util.linkedhashmap ؛ استيراد java.util.list ؛ استيراد java.util.map ؛ celltransformer الفئة العامة {القائمة النهائية الخاصة <Splitcell> cellContents ؛ private Final firstrowIndex ؛ mergedCell> () ؛ public celltransformer (قائمة <Splitcell> cellcontents ، int StrowIndex ، int rowsize) {this.cellcontents = cellContents ؛ this.firstrowIndex = firstrowIndex ؛ this.rowsize = rowsize ؛ cellContents) {mergedcell cellinfo = cellinfomap.get (cellContent.getKey ()) ؛ if (cellinfo == null) {cellinfo = convertToCellinfo (cellcontent) ؛ cellinfomap.put (cellinfo.getkey () */cellinfo.incendc () ؛ // end end end end index index (المستخدمة لدمج العمود) cellinfo.setleaf (false) ؛ // طالما ظهرت مرارًا وتكرارًا ، فهي عبارة يجب دمجها على الصف الأخير cellinfo.setendr (firstrowIndex + Rowsize - 1) ؛}} الإرجاع cellinfomap ؛} mergedcell convertToCellinfo (splitcell cellcontent) {mergedcell cellinfo = جديد mergedCell () ؛ cellinfo.setkekey (cellcontent.getkey ()) ؛ cellinfo.setParentKey (cellcontent.getParentKey ()) ؛ cellinfo.setvalue (cellContent.getValue ()) ؛ cellinfo.setendc (cellContent.getColumnIndex ())امتحان
package com.zzj.excel ؛ استيراد java.io.file ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛ استيراد java.util.map ؛ استيراد jxl.work ؛ jxl.write.writablesheet ؛ استيراد jxl.write.writableWorkbook ؛ الفئة العامة الرئيسية {private static final string seperator = "_" ؛ public static void main (string [] args) recors stispion {string [] 2017_may Business Doction_Cumulative "،" May 2017_may Business الدخل _year year year alway alway alenk alway alen alenk alwken alk yenk alward alward alward alwken alk yenk alward alward alwken alk yenk alward alward alward alward alk yenk alwk alward yenk alwk alward yenk alwkود سنوي في سنوي عام سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي أو العام العام العام العام العام العام العام العام العام العام العام العام سنوي العام العام العام العام العام سنوي العام العام العام العام سنوي ،) الدخل-الدخل-الدخل-الدخل-الدخل-الدخل-الدخل-العام العام العام العام سنوي العام سنوي العام سنوي العام سنوي العام سنوي العام سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي أو العام العام سنوي.) -سنوي سنوي سنوي العام العام العام العام العام العام سنوي العام سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي سنوي عام سنوي "May 2017_profit_this month" ، "May 2017_profit_moq" ، "June 2017_main Business Doction_Cumulative" ، "June 2017_main Business Doction_Year Year" ، "June 2017_main Business الدخل _year year year alway alway alenk alwken alk yenard alk yen alk yen alk yee آر آر آر عامًا على مدار العام العام العام العام ، العام العام العام العام العام العام العام العام العام سنوي العام سنوي سنوي ، سنوي سنوي سنوي سنوي سنوي سنوي سنوي عام سنوي سنوي سنوي عام سنوي extranames.length ؛ i ++) {extranames [i] = "extra"+i ؛} int firsttreerowIndex = 1 ؛ int rowsize = getRowsize (targetNames) ؛ list <Splitcell> cellContents = new ArrayList <> () ؛ for (int i = 0 ؛ i <TargetNames.length ؛ i ++) القيم. الطول ؛ splitcell cellContent = new splitcell (key ، parentkey ، value ، i ، j + firsttreerowIndex) ؛ cellContents.Add (cellContent) ؛}} workworkbook workbook = workbook.createworkbook (ملف جديد ("f: //template.xls")) ؛ cellformat cellformat = getCellFormat () ؛ intablesheeet extrent = formbook.createSheet ("template" ، 0) ؛ Label = New Label (i ، 0 ، expranames [i] ، cellformat) ؛ sheet.addcell (label) ؛} // tree header celltransformer cellinfomanager = new celltransformer (cellcontents ، firsttreerowIndex ، rowsize) ؛ map <stringCell> map = cellinfomanager.transform () ؛ لـ (mergedcell cellinfo: map.values ()) {label label = new label (cellinfo.getStartc () ، cellinfo.getStartr () ، cellinfo.getValue () cellinfo.getendr ()) {sheet.mergecells (cellinfo.getStartc () ، cellinfo.getStartr () ، cellinfo.getendc () ، cellinfo.getendr ()) ؛ بنجاح!) drableCellFormat () ؛ cellformat.setfont (font) ؛ cellformat.setalignment (jxl.format.alignment.centre) ؛ cellformat.setVerticalIngenment (jxl.format.verticalignment.centre) ؛ cellformat.setWrap (false) ؛ (السلسلة T: TargetNames) {rowsize = math.max (rowsize ، t.split (فاصل) .Length) ؛} إرجاع rowsize ؛ فاصل) ؛} sb.deletecharat (sb.length () - 1) ؛ إرجاع sb.toString () ؛} سلسلة ثابتة خاصة getParentKey (String [] ، int index) {if (index == 0) {return null ؛} return getKey (القيم ، الفهرس - 1) ؛لخص
ما ورد أعلاه هو كل محتوى هذه المقالة حول تطبيق Java الذي يولد مثال رمز كامل لرأس شجرة Excel. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!