1. Excelをエクスポートするときは、カテゴリごとにエクスポートする必要があります。 1つの主要なカテゴリにはいくつかのサブカテゴリがあり、次の写真と同じように、サブカテゴリの下にいくつかのサブカテゴリがあります。
これを達成することは難しくありません。
アイデアは次のとおりです。主要なカテゴリに従って循環します。たとえば、上記は、Zhangjiang Campus、Xuhui Campus、およびLingang Campusの3つの主要なカテゴリに従ってサイクリングし、マイナーカテゴリを処理することです。この例にはマージが含まれないため、小さなカテゴリの処理のみが含まれます。小さなカテゴリを処理する必要がある場合でも、それらに対処する必要があります。特定の実装の原則は、マイナーカテゴリと同じです。
各サイクル、このサイクルの家のタイプと最後のサイクルの家タイプを記録します。 2つが同じ場合、++をマージするエンド列。それ以外の場合は、ハウスタイプが完了したことを意味します(各タイプが順番に順序付けられ、同じタイプが隣接していることを確認します)。特定の実装は次のとおりです。
2。コードを実装してください、特定のアイデアはすでにコメントにあります
public void expstatistics(string filepath、string campuscode){try {writableworkbook wwb = workbook.createworkbook(new file(filepath)); jxlformatutil jfu = new jxlformatutil(); WritableSheet WS = wwb.createsheet( "House Report Statistics"、0); string [] tablehead = {"キャンパス名:20"、 "ハウスタイプ:30"、 "ハウス使用:30"、 "ユーザーエリア():20"}; for(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; string erpurperse = ""; //前の使用タイプ文字列目的= ""; //現在の使用タイプint startmergecol = 1; if(null!= campuscode &&! ""。equals(campuscode)){campuslist = campusdao.findcampusbycode(campuscode); } else {campuslist = campusdao.findcampus(); } for(fcxtcampusキャンパス:campuslist){list <fcxtbuild> builds = builddao.statisticsbuilds(campus.getcampuscode()); //すべての家情報を取得するif(null!= builds&verburts.size()> 0){for(fcxtbuild build:build:build:build:build:build:build:build:build:bultions:bultions:build aby bultions){ ws.addcell(new Label(row ++、col、campus.getcampusname()、jxlformatutil.wccenter));目的= build.getusefulpurpose(); if(flag){//それが最初のループである場合、その後の最初の判断がlapurposs =目的をするように完全なものを初期化します。 flag = false; } ws.addcell(new Label(row ++、col、fcxtbuild.build_usefulpurpose.get(build.getusefulpurpose())、jxlformatutil.wccenter)); if(Pultion.equals(repurpose)){endmergecol ++; } else {// 2つが異なる場合、Fusion ws.mergecells(1、startmergecol、1、endmergecol)の前の同じ線; startmergecol = col; endmergecol = startmergecol; perpurpose =目的; } ws.addcell(new Label(row ++、col、fcxtbuild.build_buildingtype.get(build.getBuildingType())、jxlformatutil.wccenter)); ws.addcell(new Label(row ++、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のウェブサイトへのご支援ありがとうございます!