Java tutorial
/* * ReportXlsGrid.java 2010-11-11 * * Copyright 2010 Guangzhou Donghong Software Technology Inc. * Licensed under the www.jxstar.org */ package org.jxstar.report.xls; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.jxstar.report.ReportException; import org.jxstar.report.util.ReportXlsUtil; import org.jxstar.util.MapUtil; import org.jxstar.util.resource.JsMessage; /** * Excel * * @author TonyTan * @version 1.0, 2010-11-11 */ public class ReportXlsGrid extends ReportXls { public Object output() throws ReportException { _log.showDebug("excel grid report output ..."); String area_num = MapUtil.getValue(_mpMainArea, "page_size", "0"); if (area_num.length() == 0 || area_num.equals("0")) {//"???" throw new ReportException(JsMessage.getValue("reportxlsgrid.hint01")); } // int pos = 0; //? int pageSize = Integer.parseInt(area_num); // int pageNum = ReportXlsUtil.calPageNum(_lsMainRecord.size(), pageSize); //? HSSFWorkbook tmpwb = ReportXlsUtil.readWorkBook(_xlsFile); HSSFSheet tmpsheet = tmpwb.getSheetAt(0); HSSFSheet sheet = _hssfWB.getSheetAt(0); //===================Grid??========================= String not_page = _mpMainArea.get("not_page"); if (not_page.equals("1")) { if (insertSheetRow(sheet, pageSize)) { //?1?? pageNum = 1; pageSize = _lsMainRecord.size(); } } //========================================================== // for (int i = 0; i < pageNum; i++) { pos = i * pageSize; if (i == 0) { sheet = ReportXlsUtil.fillGrid(sheet, _lsMainRecord, _lsMainCol, _mpUser, pageSize, pos, i + 1, pageNum); sheet = ReportXlsUtil.fillHead(sheet, _lsHeadInfo, _mpUser); } else { tmpsheet = ReportXlsUtil.fillGrid(tmpsheet, _lsMainRecord, _lsMainCol, _mpUser, pageSize, pos, i + 1, pageNum); tmpsheet = ReportXlsUtil.fillHead(tmpsheet, _lsHeadInfo, _mpUser); //? sheet = ReportXlsUtil.appendSheet(sheet, tmpsheet); tmpwb = ReportXlsUtil.readWorkBook(_xlsFile); tmpsheet = tmpwb.getSheetAt(0); } //SHEET??? if (i == 0) sheet.setForceFormulaRecalculation(true); //?? if (!ReportXlsUtil.isAllowOut(sheet)) break; } return _hssfWB; } //? private boolean insertSheetRow(HSSFSheet sheet, int pageSize) throws ReportException { //?? if (!_lsMainRecord.isEmpty()) { //?? int rows = _lsMainRecord.size() - pageSize; if (rows > 0) { //??? String areaId = MapUtil.getValue(_mpMainArea, "area_id"); int firstRow = ReportXlsUtil.getFirstRows(areaId); if (firstRow < 0) return false; //??? int startRow = firstRow + pageSize; ReportXlsUtil.insertSheetRow(sheet, startRow, rows); return true; } } return false; } }