package com.cwl.utilty.excel;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.rstj.util.excel.ExcelHeader;
public class SimpleExportToExcelUtilty {
public static void exportExcel(String title,
List<Map<String, Object>> lstMap, OutputStream outputStream,
ExcelHeader... headers) throws Exception {
// 声明一个工作薄
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet(title);
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFFont font = wb.createFont();
font.setFontName("微软雅黑");
font.setFontHeightInPoints((short) 16);// 设置字体大小
// 把字体应用到当前的样式
style.setFont(font);
// dataIndex标识位Map
Map<String, Object> mapDataIndex = new HashMap<String, Object>();
// 产生表格标题行
HSSFRow row = sheet.createRow(0);
HSSFCell cell;
for (int i = 0; i < headers.length; i++) {
cell = row.createCell(i);
cell.setCellStyle(style);
cell.setCellValue(headers[i].getText().toString());
mapDataIndex.put(headers[i].getDataIndex(), i);
mapDataIndex.put("s$" + headers[i].getDataIndex(), headers[i]
.getExcelFieldStrategy());
}
// 生成数据
for (int j = 0; j < lstMap.size(); j++) {
row = sheet.createRow(j + 1);
for (String mapKey : lstMap.get(j).keySet()) {
if (mapDataIndex.get(mapKey) == null) {
continue;
}
cell = row.createCell(new Integer(mapDataIndex.get(mapKey)
.toString()));
ExcelFieldStrategyInterface excelFieldStrategy = mapDataIndex
.get("s$" + mapKey) == null ? null
: (ExcelFieldStrategyInterface) mapDataIndex.get("s$"
+ mapKey);
Object obj = lstMap.get(j).get(mapKey);
if (obj == null) {
obj = "";
}
String value = null;
if (excelFieldStrategy != null) {
cell.setCellValue((String) excelFieldStrategy
.operateField(obj));
} else if (obj instanceof Date) {
Date date = (Date) obj;
SimpleDateFormat sdf = new SimpleDateFormat(headers[cell
.getColumnIndex()].getYyMMdd());
value = sdf.format(date);
cell.setCellValue(value);
} else if (obj instanceof Integer) {
int val = ((Integer) obj).intValue();
cell.setCellValue(val);
} else if (obj instanceof Double) {
double val = (Double) obj;
cell.setCellValue(val);
} else {
cell.setCellValue(obj.toString());
}
}
}
wb.write(outputStream);
}
public static void exportExcelForList(String title, List<?> lst,
OutputStream outputStream, ExcelHeader... headers) throws Exception {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet(title);
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFFont font = wb.createFont();
font.setFontName("微软雅黑");
font.setFontHeightInPoints((short) 16);// 设置字体大小
// 把字体应用到当前的样式
style.setFont(font);
// dataIndex标识位Map
Map<String, Object> mapDataIndex = new HashMap<String, Object>();
// 产生表格标题行
HSSFRow row = sheet.createRow(0);
HSSFCell cell;
for (int i = 0; i < headers.length; i++) {
sheet.setColumnWidth(i, headers[i].getText().length() * 2400);
cell = row.createCell(i);
cell.setCellStyle(style);
cell.setCellValue(headers[i].getText().toString());
mapDataIndex.put(headers[i].getDataIndex(), i);
mapDataIndex.put("s$" + headers[i].getDataIndex(), headers[i]
.getExcelFieldStrategy());
}
// 填充数据
for (int i = 0; i < lst.size(); i++) {
row = sheet.createRow(i + 1);
Class<? extends Object> t = (Class<? extends Object>) lst.get(i)
.getClass();
Field[] fields = t.getDeclaredFields();
for (Field field : fields) {
String fieldName = field.getName();
if (mapDataIndex.get(fieldName) == null) {
continue;
}
Object obj = MethodUtil.doFiledGetMehod(lst.get(i), fieldName);
if (obj == null) {
obj = "";
}
cell = row.createCell(new Integer(mapDataIndex.get(fieldName)
.toString()));
ExcelFieldStrategyInterface excelFieldStrategy = mapDataIndex
.get("s$" + fieldName) == null ? null
: (ExcelFieldStrategyInterface) mapDataIndex.get("s$"
+ fieldName);
String value = null;
if (excelFieldStrategy != null) {
cell.setCellValue((String) excelFieldStrategy
.operateField(obj));
} else if (obj instanceof Date) {
Date date = (Date) obj;
SimpleDateFormat sdf = new SimpleDateFormat(headers[cell
.getColumnIndex()].getYyMMdd());
value = sdf.format(date);
cell.setCellValue(value);
} else if (obj instanceof Integer) {
int val = ((Integer) obj).intValue();
cell.setCellValue(val);
} else if (obj instanceof Double) {
double val = (Double) obj;
cell.setCellValue(val);
} else {
cell.setCellValue(obj.toString());
}
}
}
wb.write(outputStream);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论



















收起资源包目录



































共 21 条
- 1
资源评论

- msl11342018-08-15用不了啊。。缺少包呢。。云说我会笑2018-10-18少什么包。。。。

云说我会笑
- 粉丝: 0
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
