您的位置:首页 > 编程语言 > Java开发

Java Jxl Excel 操作总结5(项目实例二)

2017-05-11 17:47 615 查看
第二步:创建工作薄和创建工作表和定义fillsheet的方法

public static <T> void listToExcel(List<T> list,LinkedHashMap<String, String> fieldMap, String sheetName,int sheetSize, OutputStream out) throws Exception {
if (list.size() == 0 || list == null) {
throw new Exception("数据源中没有任何数据");
}
// 创建工作簿并发送到OutputStream指定的地方
WritableWorkbook wwb;
try {
wwb = Workbook.createWorkbook(out);
// 因为2003的Excel一个工作表最多可以有65536条记录,除去列头剩下65535条
// 所以如果记录太多,需要放到多个工作表中,其实就是个分页的过程
// 1.计算一共有多少个工作表
double sheetNum = Math.ceil(list.size()/ new Integer(sheetSize).doubleValue());
// 2.创建相应的工作表,并向其中填充数据
for (int i = 0; i < sheetNum; i++) {
if (1 == sheetNum)// 如果只有一个工作表的情况
{
WritableSheet sheet = wwb.createSheet(sheetName, i);
fillSheet(sheet, list, fieldMap, 0, list.size() - 1);
}
else// 有多个工作表的情况
{
WritableSheet sheet = wwb.createSheet(sheetName + (i + 1),i);
// 获取开始索引和结束索引
int firstIndex = i * sheetSize;
int lastIndex = (i + 1) * sheetSize - 1 > list.size() - 1 ? list.size() - 1 : (i + 1) * sheetSize - 1;
// 填充工作表
fillSheet(sheet, list, fieldMap, firstIndex, lastIndex);
}
}
wwb.write();
wwb.close();
} catch (Exception e) {
e.printStackTrace();
if (e instanceof ExcelException) {
throw (ExcelException) e;// 如果是ExcelException,则直接抛出
} else {
throw new ExcelException("導出Excel失敗");// 否则将其它异常包装成ExcelException再抛出
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: