1. Иногда при экспорте Excel вам необходимо экспортировать по категории. Есть несколько подкатегорий в одной основной категории, и в подкатегориях есть несколько подкатегорий, как и следующая картина:
Это не сложно достичь этого.
Идея заключается в следующем: циркулировать в соответствии с основными категориями. Например, вышеупомянутое велосипеде в соответствии с тремя основными категориями кампуса Чжанцзяна, кампуса Xuhui и кампуса Линганг, а затем обрабатывают незначительные категории. Поскольку этот пример не включает в себя слияние, он включает в себя только обработку небольших категорий. Если вам нужно обрабатывать небольшие категории, вам все равно нужно иметь дело с ними. Конкретный принцип реализации такой же, как и незначительные категории;
Каждый цикл записывайте тип этого цикла и тип дома последнего цикла. Когда они одинаковы, конечный ряд объединяется ++. В противном случае это означает, что тип дома был завершен (при условии, что каждый тип упорядочен по порядку, гарантируя, что один и тот же тип находится рядом) и начинает сливаться. Конкретная реализация заключается в следующем:
2. Реализуйте код, конкретная идея уже в комментариях
public void expstatistics (String filePath, String campuscode) {try {wriseableworkbook wwb = workbook.createworkbook (новый файл (filepath)); Jxlformatutil jfu = new jxlformatutil (); WrisebleSheet ws = wwb.createSheet («Статистика отчета дома», 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 perpurpose = ""; // предыдущий использование типа строки string = ""; // текущее использование типа int startmergecol = 1; // Первая строка, которая может быть объединена int endmergecol = 0; // Последняя строка, которая должна быть решена Boolean Flag = true; // для записи, является ли это первой Loop // Export Liled <fcxtCamp> campusList = New ArrayList; if (null! = campuscode &&! ". } else {campuslist = campusdao.findcampus (); } для (fcxtcampus campus: campuslist) {list <fcxtbuild> builds = builddao.statisticsbuilds (campus.getCampuscode ()); // Получить все данные дома if (null! Метка (row ++, col, campus.getCampusName (), jxlformatutil.wccenter)); Цель = BUILD.GETUSEFURPUREPONE (); if (flag) {// Если это первый цикл, инициализируйте перпеса, чтобы последующее первое решение perpurpose = actule; flag = false; } ws.addcell (new Label (row ++, col, fcxtbuild.build_usefulpurpose.get (build.getUsefurepurpose ()), jxlformatutil.wccenter)); if (packe.equals (perpurpose)) {endmergecol ++; } else {// Когда они разные, одни и те же строки перед 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 (новая метка (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!