package com.zzgame.demo.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
//import com.hna.aircrewhealth.po.AviatorHealthCheck;
//import com.hna.aircrewhealth.security.po.Staff;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCell;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
public class ExcelTool {
private static String path = "F:\\luokq\\aircrewhealth\\template\\重大疾病报告单.xls";
private final static String defaultName = "航医跟班检查记录单.xls";
public static String getPath() {
return path;
}
public static void setPath(String p) {
path = p;
}
//这个MAIN方法是个DEMO 可以参照这个写法
// public static void main(String[] arg) {
// AviatorHealthCheck bean = new AviatorHealthCheck();
//
// bean.setId("3FCB19B440E74DF1BD50CD123A3C087C");
// bean.setHealthCheckFlightNum("NB-38-54321");
//
// Staff s = new Staff(); //声明一个实体类
// s.setName("王八");
// bean.setFollowDoctor(s);
//
// bean.setNoddeid("878787");
// bean.setStartTime("1987-02-25");
// bean.setEndTime("1987-02-25");
// bean.setFollowContext("脸可大饿,打瞌睡,而开发,奥东科咳咳咳什么刺激附近的库斯科到看风景的库斯科,道可服务端");
//
// Map<String, Object> map = new HashMap<String, Object>(); //声明一个map
// map.put("AviatorHealthCheck", bean); //将实体放入Map,因为是按Map输出的
/**
*下面这个是循环用的
*/
// List<Object> list = new ArrayList<Object>();
//
// for (int i = 0; i < 6; i++) {
// bean = new AviatorHealthCheck();
//
// bean.setId("3FCB19B440E74DF1BD50CD123A3C087C"+"----"+i);
// bean.setHealthCheckFlightNum("NB-38-54321"+"----"+i);
//
// s = new Staff();
// s.setName("王八"+"----"+i);
// bean.setFollowDoctor(s);
//
// bean.setNoddeid("878787"+"----"+i);
// bean.setStartTime("1987-02-25"+"----"+i);
// bean.setEndTime("1987-02-25"+"----"+i);
// bean.setFollowContext("脸可大饿,打瞌睡,而开发,奥东科咳咳咳什么刺激附近的库斯科到看风景的库斯科,道可服务端"+"----"+i);
// list.add(bean);
// }
// map.put("listname", list);
// map.put("listname2", list);
/**这是循环结束了*/
// exportExcel(path, map); //这个最主要,是导出Excel的方法
// }
/**
* 导出 Excel
*
* @param template
* Excel模板
* @param datas
* 数据
* @return
*/
public static FileInputStream exportExcel(String template, Map<String, Object> datas) {
FileInputStream fis = null;
InputStream is = FileTool.getFileInputStream(template);
try {
if (is != null) {
Workbook book = Workbook.getWorkbook(is);
File tempFile = File.createTempFile("temp", ".xls");
WritableWorkbook wWorkbook = Workbook.createWorkbook(tempFile, book);
/** 处理【表达式】类型的数据。 **/
generateExpData(book, wWorkbook, datas);
/** 处理【循环结果集】类型的数据。 **/
generateEachData(book, wWorkbook, datas);
wWorkbook.write();
wWorkbook.close();
fis = new FileInputStream(tempFile);
}
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
if(is!=null){
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return fis;
}
public static FileInputStream exportExcel1(String template, Map<String, Object> datas) {
FileInputStream fis = null;
InputStream is = FileTool.getFileInputStream(template);
try {
if (is != null) {
Workbook book = Workbook.getWorkbook(is);
File tempFile = File.createTempFile("temp", ".xls");
WritableWorkbook wWorkbook = Workbook.createWorkbook(tempFile, book);
/** 处理【表达式】类型的数据。 **/
generateExpData1(book, wWorkbook, datas);
/** 处理【循环结果集】类型的数据。 **/
generateEachData(book, wWorkbook, datas);
wWorkbook.write();
wWorkbook.close();
fis = new FileInputStream(tempFile);
}
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
if(is!=null){
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return fis;
}
/**
* 处理【表达式】类型的数据。
*
* @param book
* 【模板】对象
* @param wWorkbook
* 根据模板创建的【新数据文件】对象
*/
private static void generateExpData(Workbook book, WritableWorkbook wWorkbook, Map<String, Object> datas) throws Exception {
List<ExcelCells> expcells = search("${", book);
for (ExcelCells cell : expcells) {
wWorkbook.getSheet(cell.getSheetIndex()).addCell(getValueByExp(cell, datas));
}
}
private static void generateExpData1(Workbook book, WritableWorkbook wWorkbook, Map<String, Object> datas) throws Exception {
List<ExcelCells> expcells = search("${", book);
for (ExcelCells cell : expcells) {
wWorkbook.getSheet(cell.getSheetIndex()).addCell(getValueByExp1(cell, datas));
}
}
/**
* 处理【循环结果集】类型的数据
*
* @param book
* 【模板】对象
* @param wWorkbook
* 根据模板创建的【新数据文件】对象
*/
private static void generateEachData(Workbook book, WritableWorkbook wWorkbook, Map<String, Object> datas) throws Exception {
List<ExcelCells> each = search("each.", book);
/* 先对模板列对象,进行分组。 */
Map<String, List<ExcelCells>> map = new LinkedHashMap<String, List<ExcelCells>
没有合适的资源?快使用搜索试试~ 我知道了~
java导出数据到指定的excel模板中。
共31个文件
class:9个
java:9个
xls:2个
5星 · 超过95%的资源 需积分: 50 225 下载量 137 浏览量
2013-12-16
17:21:05
上传
评论 9
收藏 706KB ZIP 举报
温馨提示
这个项目源自于http://blog.csdn.net/suhenhappy/article/details/7991236,这篇博客,在此谢谢博主suhenhappy。实现了java导出数据到指定的excel模板中。
资源推荐
资源详情
资源评论
收起资源包目录
Excel-template-export.zip (31个子文件)
Excel-template-export
招飞体检数据表.xls 17KB
招飞初检.xls 10KB
JXLExcelDemo
src
com
zzgame
demo
util
DateTool.java 5KB
StringUtils.java 3KB
ObjectCustomUtil.java 12KB
ExcelTool.java 20KB
ExcelTemplate.java 344B
ExcelCells.java 2KB
FileTool.java 8KB
beans
Physical.java 4KB
test
testJxlDemo.java 2KB
.classpath 483B
.mymetadata 309B
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.jsdt.ui.superType.name 6B
.jsdtscope 500B
org.eclipse.jdt.core.prefs 330B
.project 1KB
WebRoot
META-INF
MANIFEST.MF 36B
index.jsp 829B
WEB-INF
classes
com
zzgame
demo
util
DateTool.class 4KB
ExcelCells.class 2KB
ExcelTool.class 13KB
StringUtils.class 4KB
FileTool.class 6KB
ObjectCustomUtil.class 8KB
ExcelTemplate.class 482B
beans
Physical.class 3KB
test
testJxlDemo.class 3KB
lib
jxl-2.6.12.jar 709KB
web.xml 371B
共 31 条
- 1
dawnsun001
- 粉丝: 31
- 资源: 46
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页