1. Parfois, lors de l'exportation Excel, vous devez exporter par catégorie. Il existe plusieurs sous-catégories dans une seule catégorie majeure, et il existe plusieurs sous-catégories sous les sous-catégories, tout comme l'image suivante:
Ce n'est pas difficile d'y parvenir.
L'idée est la suivante: circuler selon les principales catégories. Par exemple, ce qui précède consiste à faire du vélo en fonction des trois principales catégories du campus de Zhangjiang, du campus Xuhui et du campus de Lingang, puis de traiter les catégories mineures. Parce que cet exemple n'implique pas de fusion, il implique uniquement de traiter les petites catégories. Si vous devez traiter de petites catégories, vous devez toujours les traiter. Le principe de mise en œuvre spécifique est le même que les catégories mineures;
Chaque cycle, enregistrez le type de maison de ce cycle et le type de maison du dernier cycle. Lorsque les deux sont les mêmes, la ligne finale à fusionner ++. Sinon, cela signifie que le type de maison a été terminé (à condition que chaque type soit ordonné par ordre, garantissant que le même type est adjacent) et commence à fusionner. La mise en œuvre spécifique est la suivante:
2. Implémentez le code, l'idée spécifique est déjà dans les commentaires
public void Expstatistics (String filepath, String Campusccode) {try {writeableworkbook wwb = workbook.createworkbook (nouveau fichier (filepath)); Jxlformatutil jfu = new jxlformatutil (); Writshesheet ws = wwb.createSheet ("statistiques du rapport de la maison", 0); String [] Tablehead = {"Campus Name: 20", "Type de maison: 30", "Utilisation de la maison: 30", "Zone d'utilisateur (): 20"}; for (int i = 0; i <tableadhead.length; i ++) {// Le style de titre de chaque colonne ws.AddCell (new Label (i, 0, Tablehead [i] .split (":") [0], jxlformatutil.wchead)); ws.SetColumnView (i, Integer.ValueOf (Tablehead [i] .split (":") [1])); } int col = 1; // Démarrer à partir de la ligne 1 // Les variables suivantes sont utilisées pour fusionner le même contenu int percol = col; String percrose = ""; // le type d'utilisation précédent String Puty Puty = ""; // Le type d'utilisation actuel int startMergeCol = 1; // La première ligne à fusionner int EndMergeCol = 0; // la dernière ligne à fusionner booléen Flag if (null! = campuscode &&! "". égal (campuscode)) {campusList = campusdao.findcampusbycode (campuscode); } else {campusList = CampusDao.FindCampus (); } pour (fcxtcampus campus: campusList) {list <fcxtBuild> builds = buildDao.statisticsBuilds (campus.getCampCode ()); // obtenir toutes les informations de la maison if (null! = builds && buildS.size ()> 0) {for (fcxtbuild build: builds) {int row = 0; // stark Label (row ++, col, campus.getCampusName (), jxlformatutil.wccenter)); but = build.getUsefulPurpose (); if (Flag) {// Si c'est la première boucle, initialisez perpère de sorte que le premier jugement ultérieur perpère = but; Flag = false; } ws.AddCell (new Label (Row ++, Col, fcxtBuild.build_usefulpurpose.get (build.getUsefulPurpose ()), jxlformatutil.wccenter)); if (Purpture.equals (perpurpose)) {EndMergeCol ++; } else {// Lorsque les deux sont différents, les mêmes lignes avant la fusion ws.mergecells (1, startmergecol, 1, endMergeCol); startMergeCol = col; EndMergeCol = startMergeCol; perfurpose = but; } 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 (); }}Résumer
Ce qui précède est une explication détaillée des idées de ligne de fusion du même contenu dans la même colonne lors de l'exportation de Java Excel. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!