1. 때때로 Excel을 내보낼 때 카테고리별로 내보내야합니다. 하나의 주요 범주 아래에는 몇 가지 하위 범주가 있으며 다음 그림과 마찬가지로 하위 범주 아래에 몇 가지 하위 범주가 있습니다.
이것을 달성하는 것은 어렵지 않습니다.
아이디어는 다음과 같습니다. 주요 범주에 따라 순환합니다. 예를 들어, 위는 Zhangjiang 캠퍼스, Xuhui 캠퍼스 및 Lingang 캠퍼스의 세 가지 주요 범주에 따라 순환하고 작은 범주를 처리하는 것입니다. 이 예제에는 병합이 포함되지 않으므로 작은 범주 처리 만 포함됩니다. 작은 카테고리를 처리 해야하는 경우에도 여전히 처리해야합니다. 특정 구현 원칙은 사소한 범주와 동일합니다.
각주기에는이주기의 주택 유형과 마지막주기의 주택 유형을 기록하십시오. 둘이 동일하면 엔드 행은 병합 ++입니다. 그렇지 않으면, 이는 주택 유형이 완료되었음을 의미합니다 (각 유형이 순서대로 순서대로 주문되어 동일한 유형이 인접 해 있는지 확인하고 병합되기 시작합니다. 특정 구현은 다음과 같습니다.
2. 코드 구현, 특정 아이디어는 이미 주석에 있습니다.
public void expstatistics (String Filepath, String Campuscode) {try {writableworkbook wwb = wwb.creatworkbook (새 파일 (Filepath)); JXLFORMATUTIL JFU = NEW JXLFORMATUTIL (); WritableSheet ws = wwb.createsheet ( "House Report Statistics", 0); 문자열 [] tablehead = { "캠퍼스 이름 : 20", "하우스 유형 : 30", "하우스 사용 : 30", "사용자 영역 () : 20"}; for. ws.setcolumnview (i, integer.valueof (테이블 헤드 [i] .split ( ":") [1]); } int col = 1; // 1 행에서 시작 // 다음 변수는 동일한 내용을 융합시키는 데 사용됩니다 int percol = col; String Perpurpose = ""; // 이전 사용 유형 문자열 목적 = "";/ 현재 사용 유형 int startmergecol = 1; // int int endmergecol = 0; // 퓨즈 부울 플래그 = true; // campuslist <fcxtcampus>를 기록하는 데 사용하는 마지막 줄 <fcxtcamplist>); if (null! = campuscode &&! "". equals (campuscode)) {campuslist = campusdao.findcampusbycode (campuscode); } else {campusList = campusDao.FindCampus (); } for (fcxtcampus 캠퍼스 : 캠퍼스리스트) {list <fcxtBuild> builds = builddao.statisticsBuilds (campus.getCampScode ()); // 모든 주택 정보 가져 오기 (null! = builds.size ()> 0) {int Row = 0; // stare (builds). label (row ++, col, campus.getCampusName (), jxlformatutil.wccenter)); 목적 = build.getusefulpurpose (); if (flag) {// 첫 번째 루프 인 경우 직각을 초기화하여 후속 첫 번째 판단이 직접적인 목적을 초기화하십시오. flag = false; } ws.AddCell (새 레이블 (Row ++, Col, fcxtBuild.build_usefulpurpose.get (build.getSeuseFulpurpose ()), jxlformatutil.wccenter)); if (목적 .Equals (직접)) {endmergecol ++; } else {// 둘이 다를 때, 융합 이전의 동일한 줄 ws.mergecells (1, startmergecol, 1, endmergecol); STARTMERGECOL = COL; endmergecol = startmergecol; 직각 = 목적; } ws.AddCell (새 레이블 (row ++, col, fcxtBuild.build_buildingtype.get (build.getBuildingType ()), jxlformatutil.wccenter); ws.addcell (새 레이블 (Row ++, col, build.getBuildArea (). tostring (), jxlformatutil.wccenter)); col ++; } ws.mergecells (0, Percol, 0, Col-1); Percol = col; }} wwb.write (); wwb.close (); } catch (예외 e) {e.printstacktrace (); }}요약
위의 것은 Java Excel을 내보낼 때 동일한 열에서 동일한 컨텐츠를 병합하는 라인 아이디어에 대한 자세한 설명입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!