ps:看到有同学问了一下问题,做一下答复,该实现不是web项目,大家只需要将代码集成到web项目中即可,原项目太大,不便上传。还有 jar包自己找啊 呵呵
采用easyui+jdbc+xml模板生成报表 不用写代码 只要配置 模板就可以 模板支持easyui元素 属性 超级简单、可扩展, 目前开源的报表工具不能生成查询条件在同一页面,必须弹出框数据查询信息 很不方便,商业的要好多钱。
1 报表界面配置xml 如下:
2 引用sql语句
3 生成界面如下
页面可以设置 宽度 查询条件 每行显示几个元素 支持排序 等 详细见代码
附件中少了 ExportExcel.java 类 代码如下
package com.framework.core.common.util;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExportExcel {
public static Workbook getWrokBook2007(List> lists,
String sheetName, LinkedHashMap columns) {
XSSFWorkbook book = new XSSFWorkbook();
XSSFSheet sheet = book.createSheet(sheetName);
if (org.apache.commons.collections.CollectionUtils.isNotEmpty(lists)) {
writeExcelColumn(columns, sheet);
writeExcelData(lists, sheet, columns);
}
return book;
}
private static void writeExcelData(List> lists,
XSSFSheet sheet, LinkedHashMap columns) {
int rowIndex = 1;
for (Map map : lists) {
XSSFRow row = sheet.createRow(rowIndex);
int cellIndex = 0;
for (Entry entry : columns.entrySet()) {
String key = entry.getKey();
Object value = map.get(key);
XSSFCell cell = row.createCell(cellIndex);
if (null == (value)) {
value = "";
}
cell.setCellValue(String.valueOf(value));
cellIndex++;
}
rowIndex++;
}
}
private static Map writeExcelColumn(
Map columns, XSSFSheet sheet) {
XSSFRow columnRow = sheet.createRow(0);
int index = 0;
for (Entry entry : columns.entrySet()) {
XSSFCell cell = columnRow.createCell(index);
String key = entry.getKey();
String column = columns.get(key);
cell.setCellValue(column);
index++;
}
return null;
}
}