1. A veces al exportar Excel, debe exportar por categoría. Hay varias subcategorías en una categoría importante, y hay varias subcategorías en las subcategorías, al igual que la siguiente imagen:
No es difícil lograr esto.
La idea es la siguiente: circula de acuerdo con las categorías principales. Por ejemplo, lo anterior es andar en bicicleta de acuerdo con las tres categorías principales del campus de Zhangjiang, el campus de Xuhui y el campus de Lingang, y luego procesar las categorías menores. Debido a que este ejemplo no implica la fusión, solo implica procesar pequeñas categorías. Si necesita procesar categorías pequeñas, aún necesita lidiar con ellas. El principio de implementación específico es el mismo que las categorías menores;
Cada ciclo, registre el tipo de casa de este ciclo y el tipo de casa del último ciclo. Cuando los dos son iguales, la fila final se fusionará ++. De lo contrario, significa que el tipo de casa se ha completado (siempre que cada tipo esté ordenado para que se ordene, asegurando que el mismo tipo sea adyacente) y comience a fusionarse. La implementación específica es la siguiente:
2. Implementar el código, la idea específica ya está en los comentarios
public void Expstatistics (String FilePath, String CampusCode) {try {WitableWorkbook wwb = workbook.createworkbook (nuevo archivo (filePath)); JxlFormatUtil jfu = new JXLFormAtUtil (); WritableSheet ws = wwb.createSheet ("estadísticas de informes de la casa", 0); String [] tablehead = {"Nombre del campus: 20", "Tipo de casa: 30", "Uso de la casa: 30", "Área de usuario (): 20"}; for (int i = 0; i <tablehead.length; i ++) {// El estilo de título de cada columna ws.Addcell (nueva etiqueta (i, 0, tablehead [i] .split (":") [0], jxlFormateTil.wchead)); ws.setColumnView (i, integer.valueOf (tablehead [i] .split (":") [1])); } int col = 1; // Comience desde la línea 1 // Las siguientes variables se usan para fusionar el mismo contenido int percol = col; Cadena perpurpose = ""; // El tipo de uso anterior String string propósito = ""; // El tipo de uso actual int in startMerGecol = 1; // La primera línea que se fusionará int endmergeCol = 0; // la última línea que se fusionará boolean flag = verdad; if (null! = campuscode &&! "". Equals (Campuscode)) {CampusList = Campusdao.FindCampusbyCode (Campuscode); } else {CampusList = Campusdao.FindCampus (); } para (fcxtcampus campus: campusList) {list <fcxtBuild> construye = builddao.statisticsBuilds (Campus.getCampUscode ()); // Obtener toda la información de la casa if (null! = Builds && builds.size ()> 0) {para (fcxtBuild Build: construye) Etiqueta (fila ++, col, campus.getCampusName (), jxlFormatUtil.wccenter)); Propósito = build.getUseFulPurpose (); if (flag) {// Si es el primer bucle, inicialice perpurpose para que el primer juicio posterior perpurpose = propósito; bandera = falso; } ws.addcell (nueva etiqueta (fila ++, col, fcxtbuild.build_usefulpurpose.get (build.getUseFulPurpose ()), jxlFormatUtil.wccenter)); if (propósito.equals (perpurpose)) {endmergecol ++; } else {// Cuando los dos son diferentes, las mismas líneas antes de fusion ws.mergecells (1, startmerGecol, 1, endmergecol); startmerGecol = col; endmerGecol = startMerGecol; perpurpose = propósito; } ws.addcell (nueva etiqueta (fila ++, col, fcxtbuild.build_buildingtype.get (build.getBuildingType ()), jxlFormatUtil.wccenter)); ws.addcell (nueva etiqueta (fila ++, col, build.getBuildara (). toString (), jxlFormatUtil.wccenter)); col ++; } ws.mergecells (0, percol, 0, col-1); percol = col; }} wwb.write (); wwb.close (); } catch (Exception e) {E.PrintStackTrace (); }}Resumir
Lo anterior es una explicación detallada de las ideas de línea de fusionar el mismo contenido en la misma columna al exportar Java Excel. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!