问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

poi将数据生成excel中,流程是怎么实现的?

发布网友 发布时间:2022-04-26 19:56

我来回答

1个回答

热心网友 时间:2023-10-26 07:41

/**
* 请求处理
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public void myself(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//定义文件的绝对路径
String realpath=request.getSession().getServletContext().getRealPath("");
System.out.println("realpath--"+realpath);
//获得跳转页面的路径
String url=request.getParameter("url");
System.out.println("url--"+url);
String filepath=ExcelMaker.makeExcel(excelModelPath,realpath);
System.out.println("newfilepath--"+filepath);
if(url!=null&&url.length()>0){
request.setAttribute("filepath", filepath);
request.getRequestDispatcher(url).forward(request, response);
}

}
/**
* 生成excel文件
* @author 尹义恒
*
*/
public class ExcelMaker {
private static String filepath="";
private static String newfilepath="";

//通过excel模板生成
public static String makeExcel(String modelpath,String realpath){
try {
//选择模板文件
Workbook wb=Workbook.getWorkbook(new File(realpath+"/yyh/"+modelpath));
//创建一个新的文件
newfilepath="/yyh/yyh.xls";
filepath=realpath+newfilepath;
File targetFile=new File(filepath);
targetFile.createNewFile();
//给新的文件加载模板
WritableWorkbook wwb=Workbook.createWorkbook(targetFile, wb);
ExcelMgr.makeExcel(wwb,realpath);
wwb.write();
wwb.close();
wb.close();

} catch (Exception e) {
}

return newfilepath;
}
//不通过模板生成
public static String makeExcel(String realpath){
try {
filepath=realpath+"/yyh.xls";
WritableWorkbook wwb=Workbook.createWorkbook(new File(filepath));
ExcelMgr.makeExcel(wwb,realpath);
} catch (IOException e) {
e.printStackTrace();
}
return filepath;
}
}

/**
* excel文件的管理
* @author 尹义恒
*
*/
public class ExcelMgr {
//定义一个存储数据的集合
private static List<YyhMyself> list=new ArrayList<YyhMyself>();
//定义一个业务层
private static YyhMyselfService service=new YyhMyselfService();
private List<YyhMyself> getList() {
return list;
}

public void setList(List<YyhMyself> list) {
this.list = list;
}

//生成excel文件
public static void makeExcel(WritableWorkbook wwb,String realpath){
init();
WritableSheet sheet=wwb.getSheet(0);
//加载样式
FormatStyle.init();
fillCell(sheet,realpath);
}
//加载数据
public static void init(){
//给集合加载数据
list=service.findAll();
}
//填充单元格
public static void fillCell(WritableSheet sheet,String realpath){

for(int i=0;i<list.size();i++){
YyhMyself yyh=list.get(i);
int co=yyh.getCo();
int ro=yyh.getRo();
String value=yyh.getVal();
String type=yyh.getType();
try {
if(type.equals("string")){
System.out.println("string--"+value);
Label cell=new Label( co,ro,value,FormatStyle.detFormat);
sheet.addCell(cell);
}else if(type.equals("int")){
System.out.println("int--"+value);
int val=new Integer(value);
jxl.write.Number cell=new jxl.write.Number(co,ro,val,FormatStyle.int_format);
sheet.addCell(cell);
}else if(type.equals("times")){
System.out.println("date--"+value);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date date=sdf.parse(value);
DateTime cell=new DateTime(co, ro, date, FormatStyle.date_format);
sheet.addCell(cell);
}else if(type.equals("img")){
System.out.println("img--"+value);
System.out.println("realpath--"+realpath);
File image=new File(realpath+"/"+value);
WritableImage img=new WritableImage(co, ro, 2, 2, image);
sheet.addImage(img);
}else if(type.equals("double")){
System.out.println("double--"+value);
double val=new Double(value);
jxl.write.Number cell=new jxl.write.Number(co,ro,val,FormatStyle.double_format);
sheet.addCell(cell);
}else if(type.equals("float")){
System.out.println("float--"+value);
float val=new Float(value);
jxl.write.Number cell= new jxl.write.Number(co,ro,val,FormatStyle.float_format);
sheet.addCell(cell);
}else{
System.out.println("没有查到对应的数据!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

}
基本流程就是这样
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 嘴唇上有黑印用蜜蜡和棉线去除了胡须 中国银行微银行赎回中银理财 中银余额理财一天赎回一万必须间隔24小时吗? 中银收益基金赎回及到账时间 中银理财如何退出?没看到赎回按钮 中银理财可以赎回吗 中国银行APP的余额理财赎回时间是多久啊?? 中国银行理财产品在柜台办理购买、撤销、赎回等业务如果需要代办,有什么规定 中国银行理财产品赎回攻略,你学会了吗 个人网银上面的中银理财怎么操作赎回啊? 中国银行理财产品在柜台办理购买、撤销、赎回等业务代办的规定是什么... 中国银行企业网银中银理财赎回操作步骤 泰州白马镇会划入高新区 南京市浦口区乡镇分别是哪 南京紫金山从白马公园爬到山顶要多长时间? 白马工业集中区经纬度是多少 南京白马黑莓几月份上市 高新区白马间小学的吴星隆谁啊?好像很有名哦! 白马湖是属于滨江区还是高新区 建设银行000018553支出是什么意思? 南京白马镇属于哪个法院 java中poi怎么生成excel POI生成excel问题 用poi生成excel,如何设置千位分隔符 poi 导出excel2007的时候,自动执行excel中的公式? Java 利用poi 导出excel表格 如何在导出时自由选择路径? java poi导出Excel进度问题 javaweb中通过POI生成Excel并弹出下载窗口! 90年代的电视剧 反映70到90年代的电视剧有哪些? 电视剧《启航》作为一部写九十年代人们奋斗的电视剧,你有没有感同身受? 求推荐几部90年代 好看的电视剧 90年代好看的电视剧 中国九十年代电视剧 90年代校园青春偶像剧有哪些? 90年代经典电视剧 90年代经典的电视剧? 美国次贷危机产生,我们中国有什么启示? 求20世纪90年代经典电视剧 有电视剧是讲60到90年代的励志电视剧? 拍电视剧以80,90年代为背景有那些