Java 导出Excel

来源:互联网 发布:淘宝话费代理 编辑:程序博客网 时间:2024/06/05 08:33
<pre name="code" class="java">package net.e_lian.bpm.core.report.crossreport.runtime.action;import java.io.FileOutputStream;import java.text.DecimalFormat;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import net.e_lian.bpm.core.report.crossreport.runtime.analyzer.AnalyseDimension;import net.e_lian.bpm.core.report.crossreport.runtime.analyzer.AnalyseTable;import net.e_lian.bpm.core.report.crossreport.runtime.dataset.ConsoleData;import net.e_lian.bpm.core.report.crossreport.runtime.dataset.ConsoleDataSet;import net.e_lian.bpm.core.report.crossreport.runtime.dataset.ConsoleDataType;import net.e_lian.bpm.core.report.crossreport.runtime.dataset.ConsoleMetaData;import net.e_lian.bpm.core.report.crossreport.runtime.dataset.ConsoleRow;import net.e_lian.bpm.util.StringUtil;import org.apache.poi.ss.util.CellRangeAddress;import org.apache.poi.xssf.streaming.SXSSFCell;import org.apache.poi.xssf.streaming.SXSSFRow;import org.apache.poi.xssf.streaming.SXSSFSheet;import org.apache.poi.xssf.streaming.SXSSFWorkbook;public class ExcelWriter {private static int MAX_EXCEL_ROW_COUNT = 65535;public long write(String url, AnalyseTable analyseTable) throws Exception {try {if ((url != null) && (url.length() > 0) && (analyseTable != null)) {SXSSFWorkbook workbook = new SXSSFWorkbook(100);SXSSFSheet sheet = workbook.createSheet("result");short rowIndex = 0;rowIndex = getColumnSetExcel(sheet, analyseTable, rowIndex);getRowSetExcel(sheet, analyseTable, rowIndex);FileOutputStream fos = new FileOutputStream(url);workbook.write(fos);fos.close();}return -1L;} catch (Exception e) {e.printStackTrace();}return -1L;}private short getColumnSetExcel(SXSSFSheet sheet, AnalyseTable analyseTable, short rowIndex) {for (Iterator iterator = analyseTable.getColumnSet().iterator(); iterator.hasNext();) {SXSSFRow row = sheet.createRow(rowIndex);AnalyseDimension column = (AnalyseDimension) iterator.next();List keySet = column.getDatasKeyIterator();short columnIndex = 0;for (Iterator iterator2 = analyseTable.getRowSet().iterator(); iterator2.hasNext();) {AnalyseDimension deimension = (AnalyseDimension) iterator2.next();ConsoleMetaData metaData = deimension.getMetaData();if (metaData != null) {String columnName = metaData.getColumnName().toUpperCase();SXSSFCell cell = row.createCell(columnIndex);cell.setCellValue(columnName.indexOf("ITEM_") >= 0 ? columnName.substring(columnName.indexOf("ITEM_") + 5) : columnName);columnIndex = (short) (columnIndex + 1);}}for (Iterator iterator2 = keySet.iterator(); iterator2.hasNext();) {String key = (String) iterator2.next();if (analyseTable.getCalculationMethod() != null) {key = StringUtil.isBlank(key) ? "汇总" : key;SXSSFCell cell = row.createCell(columnIndex);cell.setCellValue(getKeyLabel(key));columnIndex = (short) (columnIndex + 1);}}if ((analyseTable.isDisplayCol()) && (rowIndex == 0)) {SXSSFCell cell0 = row.createCell(columnIndex);cell0.setCellValue("总计:");columnIndex = (short) (columnIndex + 1);}rowIndex = (short) (rowIndex + 1);}return rowIndex;}private String getKeyLabel(String key) {String[] keys = key.split("!!");return keys[(keys.length - 1)];}private void getRowSetExcel(SXSSFSheet sheet, AnalyseTable analyseTable, short rowIndex) {DecimalFormat df = new DecimalFormat("######0.00");DecimalFormat df1 = new DecimalFormat();Object[] rowDimesions = analyseTable.getRowSet().toArray();AnalyseDimension lastRowDimension = (AnalyseDimension) rowDimesions[(rowDimesions.length - 1)];Object[] columnDimesions = analyseTable.getColumnSet().toArray();AnalyseDimension lastColumnDimension = null;if ((columnDimesions == null) || (columnDimesions.length == 0)) {ConsoleMetaData metaData = new ConsoleMetaData(ConsoleDataType.toDataType(-1), "小计", 0);ConsoleDataSet dataSet = new ConsoleDataSet(new HashMap());lastColumnDimension = new AnalyseDimension(metaData, dataSet);} else {lastColumnDimension = (AnalyseDimension) columnDimesions[(columnDimesions.length - 1)];}Map resultDatas = lastRowDimension.getCrossDatas(lastColumnDimension);Collection outputValue = new ArrayList();Map map = new LinkedHashMap();Collection mergeCellList = new ArrayList();for (Iterator iterator = lastRowDimension.getDatasKeyIterator().iterator(); (iterator.hasNext()) && (rowIndex <= MAX_EXCEL_ROW_COUNT);) {short columnIndex = 0;SXSSFRow row = sheet.createRow(rowIndex);String lastRowKey = (String) iterator.next();String[] keys = lastRowKey.split("!!");for (int i = 0; i < keys.length; i++) {String currentKey = "";for (int j = 0; j <= i; j++) {currentKey = StringUtil.isBlank(keys[j]) ? " " : currentKey.length() > 0 ? currentKey + "!!" + (StringUtil.isBlank(keys[j]) ? " " : keys[j]) : keys[j];}if (!outputValue.contains(currentKey)) {int rowSpan = getRowSpan(currentKey, analyseTable) - 1;if (rowSpan > 0) {int mergeStartRowIndex = rowIndex;int mergeEndRowIndex = rowIndex + rowSpan;sheet.addMergedRegion(new CellRangeAddress(mergeStartRowIndex, columnIndex, mergeEndRowIndex, columnIndex));//sheet.addMergedRegion(new Region(mergeStartRowIndex, columnIndex, mergeEndRowIndex, columnIndex));for (int k = rowIndex; k <= mergeEndRowIndex; k++) {String mergeCellStr = String.valueOf(k) + String.valueOf(columnIndex);mergeCellList.add(mergeCellStr.trim());}} else {String cellStr = String.valueOf(rowIndex) + String.valueOf(columnIndex);if (!mergeCellList.contains(cellStr));// if (mergeCellList.contains(cellStr)) {// columnIndex = (short) (columnIndex + 1);// }}SXSSFCell cell = row.createCell(columnIndex);cell.setCellValue(getKeyLabel(currentKey));outputValue.add(currentKey);columnIndex = (short) (columnIndex + 1);} else {columnIndex = (short) (columnIndex + 1);}}double colSummarize = 0.0D;double colValue = 0.0D;double countColumn = 0.0D;for (Iterator iterator2 = lastColumnDimension.getDatasKeyIterator().iterator(); iterator2.hasNext();) {String lastColumnKey = (String) iterator2.next();String resultKey = lastRowKey + "@@" + lastColumnKey;Collection collection = (Collection) resultDatas.get(resultKey);Collection datas = collection;if (analyseTable.getCalculationMethod() != null) {getCalculationCell(datas, analyseTable.getCalculationField(), analyseTable.getCalculationMethod(), row, columnIndex);columnIndex = (short) (columnIndex + 1);}if (analyseTable.isDisplayCol()) {colValue = getSummarizeTotal(datas, analyseTable.getCalculationField(), analyseTable.getCalculationMethod());colSummarize += colValue;}if (analyseTable.isDisplayRow()) {double rowValue = getSummarizeTotal(datas, analyseTable.getCalculationField(), analyseTable.getCalculationMethod());if (map.containsKey(lastColumnKey)) {double temp = ((Double) map.get(lastColumnKey)).doubleValue();map.put(lastColumnKey, new Double(temp + rowValue));} else {map.put(lastColumnKey, new Double(rowValue));}}countColumn += 1.0D;}if (analyseTable.isDisplayCol()) {countColumn = countColumn == 0.0D ? 1.0D : countColumn;if (CalculationMethod.valueOf(analyseTable.getColCalMethod()).equals(CalculationMethod.AVERAGE)) {SXSSFCell cell = row.createCell(columnIndex);cell.setCellValue(df.format(colSummarize / countColumn));} else {SXSSFCell cell = row.createCell(columnIndex);cell.setCellValue(colSummarize);}if (map.containsKey("Total")) {double temp = ((Double) map.get("Total")).doubleValue();map.put("Total", new Double(temp + colSummarize));} else {map.put("Total", new Double(colSummarize));}}rowIndex = (short) (rowIndex + 1);}rowIndex = rowIndex == 0 ? 1 : rowIndex;int columnIndex;SXSSFRow row;Iterator iterator;if (analyseTable.isDisplayRow()) {columnIndex = 0;row = sheet.createRow(rowIndex);SXSSFCell cell0 = row.createCell(columnIndex);cell0.setCellValue("总计:");columnIndex += analyseTable.getRowSet().size();for (iterator = map.entrySet().iterator(); (iterator != null) && (iterator.hasNext());) {Map.Entry entry = (Map.Entry) iterator.next();Double value = (Double) entry.getValue();if (CalculationMethod.valueOf(analyseTable.getRowCalMethod()) == CalculationMethod.AVERAGE) {SXSSFCell cell = row.createCell(columnIndex);cell.setCellValue(df.format(value.doubleValue() / rowIndex));columnIndex++;} else {SXSSFCell cell = row.createCell(columnIndex);cell.setCellValue(df1.format(value));columnIndex++;}}}}private int getRowSpan(String analyseRowKey, AnalyseTable analyseTable) {Object[] rowSet = analyseTable.getRowSet().toArray();AnalyseDimension lastAnalyseColumn = (AnalyseDimension) rowSet[(rowSet.length - 1)];Collection keySet = lastAnalyseColumn.getDatas().keySet();int count = 0;for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {String key = (String) iterator.next();if (key.startsWith(analyseRowKey + "!!")) {count++;}}return count;}private void getCalculationCell(Collection<ConsoleRow> datas, ConsoleMetaData calculationField, CalculationMethod method, SXSSFRow HFrow, int columnIndex) {Calculator calculator = new Calculator();Iterator iterator;if (method.equals(CalculationMethod.DISTINCT)) {if ((datas != null) && (datas.size() > 0))for (iterator = datas.iterator(); iterator.hasNext();) {ConsoleRow row = (ConsoleRow) iterator.next();ConsoleData data = row.getData(calculationField);SXSSFCell cell = HFrow.createCell(columnIndex);cell.setCellValue(data != null ? data.getStringValue() : "");}} else if (method.equals(CalculationMethod.MAX)) {if ((datas != null) && (datas.size() > 0)) {SXSSFCell cell = HFrow.createCell(columnIndex);cell.setCellValue(calculator.max(datas, calculationField).getStringValue());} else {SXSSFCell cell = HFrow.createCell(columnIndex);cell.setCellValue("");}} else if (method.equals(CalculationMethod.MIN)) {if ((datas != null) && (datas.size() > 0)) {SXSSFCell cell = HFrow.createCell(columnIndex);cell.setCellValue(calculator.min(datas, calculationField).getStringValue());} else {SXSSFCell cell = HFrow.createCell(columnIndex);cell.setCellValue("");}} else {DecimalFormat f = new DecimalFormat();SXSSFCell cell = HFrow.createCell(columnIndex);cell.setCellValue(f.format(calculator.compute(datas, method, calculationField)));}}private double getSummarizeTotal(Collection<ConsoleRow> datas, ConsoleMetaData calculationField, CalculationMethod method) {Calculator calculator = new Calculator();return calculator.compute(datas, method, calculationField);}}// package net.e_lian.bpm.core.report.crossreport.runtime.action;//// import java.io.FileOutputStream;// import java.util.Iterator;//// import org.apache.poi.hssf.usermodel.HSSFCell;// import org.apache.poi.hssf.usermodel.HSSFRow;// import org.apache.poi.hssf.usermodel.HSSFSheet;// import org.apache.poi.hssf.usermodel.HSSFWorkbook;//// import net.e_lian.bpm.core.report.crossreport.runtime.dataset.ConsoleData;// import net.e_lian.bpm.core.report.crossreport.runtime.dataset.ConsoleDataSet;// import net.e_lian.bpm.core.report.crossreport.runtime.dataset.ConsoleMetaData;// import net.e_lian.bpm.core.report.crossreport.runtime.dataset.ConsoleRow;//// /**// * The excel console writer which implement the ConsoleWriter interface, it// can// * export the console object(like data set) to excel file.// *// */// public class ExcelWriter {//// private static int MAX_EXCEL_ROW_COUNT = 65535;//// /**// *// * @param url// * @param dataSet// * @SuppressWarnings 使用了过时的POI API// * @return// *// * @throws Exception// */// @SuppressWarnings("deprecation")// public long write(String url, ConsoleDataSet dataSet) throws Exception {// try {// if (url != null && url.length() > 0 && dataSet != null) {// // 1.Create the excel work sheet// HSSFWorkbook workbook = new HSSFWorkbook();// HSSFSheet sheet = workbook.createSheet("result");//// // 2.Export the title// Iterator<ConsoleMetaData> metaDataSet = dataSet.getMetaDataSetIterator();// short columnIndex = 0;//// while (metaDataSet.hasNext()) {// ConsoleMetaData metaData = (ConsoleMetaData) metaDataSet.next();//// HSSFRow row = sheet.createRow(0);// HSSFCell cell = row.createCell(columnIndex);// // cell.setEncoding(HSSFWorkbook.ENCODING_UTF_16);// cell.setCellValue(metaData.getColumnName());//// columnIndex++;// }//// // 3.Export the data// if (dataSet.getRows() != null && dataSet.getRows().size() > 0) {// short rowIndex = 1;//// for (Iterator<ConsoleRow> iterator = dataSet.getRows().iterator();// iterator.hasNext();) {// ConsoleRow dataRow = (ConsoleRow) iterator.next();// columnIndex = 0;//// if (rowIndex > MAX_EXCEL_ROW_COUNT)// break;//// HSSFRow row = sheet.createRow(rowIndex);//// for (Iterator<ConsoleData> iterator2 = dataRow.getDatas().iterator();// iterator2.hasNext();) {// ConsoleData data = (ConsoleData) iterator2.next();// HSSFCell cell = row.createCell(columnIndex);// // cell.setEncoding(HSSFWorkbook.ENCODING_UTF_16);// cell.setCellValue(data.getStringValue());//// columnIndex++;// }// rowIndex++;// }// }//// // 4.Save the file// FileOutputStream fos = new FileOutputStream(url);// workbook.write(fos);// fos.close();// }//// return -1;// } catch (Exception e) {// e.printStackTrace();// return -1;// }// }// }

package net.e_lian.bpm.util.excel;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.xssf.streaming.SXSSFRow;import org.apache.poi.xssf.streaming.SXSSFSheet;public class ExcelSheetRow {public ExcelSheetRow() {// TODO Auto-generated constructor stub}public static HSSFSheet sheet = null;/** * 设置当前Sheet名字 */private static String sheetName = null;private static SXSSFRow row = null;/** * 创建当前标题行 *  * @param sheet * @return */public static SXSSFRow createCurrSheetTitle(ExcelWorkBook work) {SXSSFSheet sheet = work.getSheet();row = sheet.createRow(0);return row;}/** * 创建当前excel记录内容 *  * @param sheet * @param i * @return */public static SXSSFRow createCurrSheetRecord(ExcelWorkBook work, int i) {SXSSFSheet sheet = work.getSheet();row = sheet.createRow(i + 1);return row;}public static String getSheetName() {return sheetName;}public static void setSheetName(String sheetName) {ExcelSheetRow.sheetName = sheetName;}}

package net.e_lian.bpm.util.excel;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.apache.poi.xssf.streaming.SXSSFSheet;import org.apache.poi.xssf.streaming.SXSSFWorkbook;public class ExcelWorkBook {public SXSSFWorkbook workbook = null;// 设置当前workbookNameprivate String workbookName = null;private SXSSFSheet sheet = null;private FileOutputStream fileOut;public ExcelWorkBook() {workbook = new SXSSFWorkbook(100);}public ExcelWorkBook(String workbookName) {this();setWorkbookName(workbookName);}public String getWorkbookName() {return workbookName;}public void setWorkbookName(String workbookName) {this.workbookName = workbookName;}/** * @return * @SuppressWarnings("deprecation") 使用了过时的POI API */@SuppressWarnings("deprecation")public SXSSFSheet getSheet() {if (sheet == null) {sheet = workbook.createSheet();workbook.setSheetName(0, workbookName);}return sheet;}public SXSSFWorkbook getWorkbook() {return workbook;}/** *  * @param toDir * @param excelName */public void write(String destDir, String excelName) {File file = new File(destDir);if (!file.exists()) {boolean isok = file.mkdirs();if (isok)writerFileStream(destDir + "/" + excelName);}}/** * 输入当前WorkBook为下载临时文件记录 *  * @param excelName */public void writerFileStream(String excelName) {try {fileOut = new FileOutputStream(excelName);workbook.write(fileOut);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {fileOut.flush();fileOut.close();if (workbook != null) {// dispose of temporary files backing this workbook on diskworkbook.dispose();workbook = null;}} catch (IOException e) {e.printStackTrace();}}}}

package net.e_lian.bpm.util.excel;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFFont;import org.apache.poi.hssf.util.HSSFColor;import org.apache.poi.ss.usermodel.CellStyle;import org.apache.poi.ss.usermodel.Font;import org.apache.poi.xssf.streaming.SXSSFWorkbook;public class ExcelCellStyleUtils {// 标题样式public CellStyle titleStyle;// 时间样式public CellStyle dataStyle;// 单元格样式public CellStyle nameStyle;// 超链接样式public CellStyle linkStyle;public HSSFFont font;public ExcelCellStyleUtils(ExcelWorkBook work) {titleStyle = linkStyle(work.getWorkbook());dataStyle = dataStyle(work.getWorkbook());nameStyle = nameStyle(work.getWorkbook());linkStyle = linkStyle(work.getWorkbook());}/** * 超链接样式 *  * @return HSSFCellStyle */private CellStyle linkStyle(SXSSFWorkbook work) {CellStyle linkStyle = work.createCellStyle();linkStyle.setBorderBottom((short) 1);linkStyle.setBorderLeft((short) 1);linkStyle.setBorderRight((short) 1);linkStyle.setBorderTop((short) 1);linkStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index);linkStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);Font font = work.createFont();font.setFontName(HSSFFont.FONT_ARIAL);font.setUnderline((byte) 1);font.setColor(HSSFColor.BLUE.index);linkStyle.setFont(font);return linkStyle;}/** * s 单元格样式 *  * @return HSSFCellStyle */private CellStyle nameStyle(SXSSFWorkbook work) {CellStyle nameStyle = work.createCellStyle();nameStyle.setBorderBottom((short) 1);nameStyle.setBorderLeft((short) 1);nameStyle.setBorderRight((short) 1);nameStyle.setBorderTop((short) 1);nameStyle.setFillForegroundColor(HSSFColor.LIGHT_CORNFLOWER_BLUE.index);nameStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);return nameStyle;}/** * 时间样式 *  * @return HSSFCellStyle */private CellStyle dataStyle(SXSSFWorkbook work) {CellStyle dataStyle = work.createCellStyle();dataStyle.setBorderBottom((short) 1);dataStyle.setBorderLeft((short) 1);dataStyle.setBorderRight((short) 1);dataStyle.setBorderTop((short) 1);dataStyle.setFillForegroundColor(HSSFColor.LIGHT_GREEN.index);dataStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);dataStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);return dataStyle;}/** * 标题样式 *  * @return HSSFCellStyle *//* * private static HSSFCellStyle titleStyle(HSSFWorkbook work) { HSSFCellStyle titleStyle = work.createCellStyle(); font = work.createFont(); font.setItalic(true); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setColor(HSSFColor.BLUE.index); titleStyle.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE); titleStyle.setBorderLeft((short) 1); titleStyle.setBorderRight((short) 1); titleStyle.setBorderTop(HSSFCellStyle.BORDER_DOUBLE); titleStyle.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index); titleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); return titleStyle; } */}

package net.e_lian.bpm.core.report.standardreport.action;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.Collection;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.Map;import net.e_lian.bpm.core.report.standardreport.ejb.StandarReportProcessBean;import net.e_lian.bpm.util.StringUtil;import net.e_lian.bpm.util.property.DefaultProperty;import net.e_lian.bpm.util.sequence.Sequence;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.util.CellRangeAddress;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class StandardReportAction extends ActionSupport implements Action {/** *  */private static final long serialVersionUID = 1L;public String _formid;public String application;public String startdate;public String enddate;public String dbmethod;public String filePath;Map<String, String> columns = new LinkedHashMap<String, String>();public String getDbmethod() {return dbmethod;}public void setDbmethod(String dbmethod) {this.dbmethod = dbmethod;}public String get_formid() {return _formid;}public void set_formid(String _formid) {this._formid = _formid;}public String doSummaryReport() throws Exception {setColMap();return SUCCESS;}/** *  * @return * @throws Exception * @SuppressWarnings 使用了过时的POI API *  */@SuppressWarnings("deprecation")public String doExportReport() throws Exception {Map<?, ?> m = getContext().getParameters();String selColNames[] = (String[]) m.get("col");String listColName[] = new String[selColNames.length + 1];int count = 0;String path = DefaultProperty.getProperty("EXPORT_PATH");String ctxPath = ServletActionContext.getServletContext().getRealPath(path);String fileName = Sequence.getSequence() + ".xls";selColNames[0] = StringUtil.isBlank(selColNames[0]) ? "AUDITOR" : selColNames[0];setFilePath(path + fileName);String xlsFile = ctxPath + "/" + fileName;if (!(new File(ctxPath).isDirectory())) {File f = new File(ctxPath);if (!f.exists()) {if (!f.mkdirs())throw new IOException("create directory '" + ctxPath + "' failed!");}}for (int i = 0; i < selColNames.length; i++)listColName[i] = selColNames[i];listColName[selColNames.length] = "USEDTIME";StandarReportProcessBean spb = new StandarReportProcessBean(application);int index = Integer.valueOf(dbmethod);Collection<Map<String, String>> collection = spb.getSummaryReport(_formid, startdate, enddate, selColNames, ReportUtil.dbmethod[index]);FileOutputStream fos = new FileOutputStream(xlsFile);HSSFWorkbook wb = new HSSFWorkbook();// for listHSSFSheet s = wb.createSheet();wb.setSheetName(0, "list Excel ");// , HSSFWorkbook.ENCODING_UTF_16);// ��ӡ����ͷHSSFRow rowheader = s.createRow(count);for (short j = 0; j < listColName.length; j++) {HSSFCell cell = rowheader.createCell(j);// cell.setEncoding(HSSFWorkbook.ENCODING_UTF_16);cell.setCellValue(listColName[j]);}count++;for (Iterator<Map<String, String>> iterator = collection.iterator(); iterator.hasNext();) {Map<String, String> rowValues = (Map<String, String>) iterator.next();HSSFRow row = s.createRow(count);HSSFRow preRow = s.getRow(count - 1);for (short j = 0; j < listColName.length; j++) {HSSFCell cell = row.createCell(j);// cell.setEncoding(HSSFWorkbook.ENCODING_UTF_16);cell.setCellValue(rowValues.get(listColName[j]).toString());if (count != 1 && preRow.getCell(j).getStringCellValue().equals(cell.getStringCellValue()) && !listColName[j].equals("USEDTIME")) {s.addMergedRegion(new CellRangeAddress(count - 1, j, count, j));//s.addMergedRegion(new Region(count - 1, j, count, j));}}count++;}// for barwb.write(fos);fos.close();return SUCCESS;}public String[] getcolumsId() throws Exception {Map<?, ?> m = getContext().getParameters();Object obj = m.get("colids");String[] rolesid = null;if (obj != null && obj instanceof String[] && ((String[]) obj).length > 0) {rolesid = (String[]) obj;}return rolesid;}public Map<String, String> getColumns() {return columns;}public void setColumns(Map<String, String> columns) {setColMap();}public void setColMap() {columns.put("", "");// ��̬��columnsMap<?, ?> m = getContext().getParameters();Object obj = m.get("colids");String[] ids = null;if (obj != null && obj instanceof String[] && ((String[]) obj).length > 0) {ids = (String[]) obj;for (int i = 0; i < ids.length; i++)columns.put("ITEM_" + ids[i].toUpperCase(), ids[i]);}columns.put("ARRIVEDTIME", "ARRIVEDTIME");columns.put("SENDOUTTIME", "SENDOUTTIME");columns.put("AUDITOR", "AUDITOR");columns.put("NODENAME", "NODENAME");}public static ActionContext getContext() {ActionContext context = ActionContext.getContext();return context;}public String getApplication() {return application;}public void setApplication(String application) {this.application = application;}public String getStartdate() {return startdate;}public void setStartdate(String startdate) {this.startdate = startdate;}public String getEnddate() {return enddate;}public void setEnddate(String enddate) {this.enddate = enddate;}public String getFilePath() {return filePath;}public void setFilePath(String filePath) {this.filePath = filePath;}}

0 0
原创粉丝点击