java跨行_java实现导出Excel(跨行,跨列)

先来个最终结果样式:

e3651f58a2c4b58785cb01843e150199.png

第一步: 传参,后期可根据自己需要进行调整。我这里需要的是

quarter 代表季度

dptid 部门编号

根据接受过来的参数进行文档命名。

UserInfo userInfo=(UserInfo)request.getSession().getAttribute("userInfo");

String userid=userInfo.getUserID();

String quarter= request.getParameter("quarter");

String dptid= request.getParameter("dptid");/***********************EXCEL导出部分**************************/String str3=FileInfoTools.getSystemFilePath()+ "/documentTemp/";

File file= newFile(str3);if (!file.exists() && !file.isDirectory()) {

file.mkdir();

}

String names= new SimpleDateFormat("yyyyMMddhhmmssSSS").format(newDate());

String ourl= str3 + names + "_"+userid+".xls";

FileOutputStream fos= null;

String fileName= "";try{

HSSFWorkbook wb= new HSSFWorkbook();//创建工作薄

fileName = "安全可控导出"+"_"+userid+"_"+names+".xls";

DBManager dbm= newDBManager();

System.out.println("quarter+"+quarter+"dptid="+dptid);try{

dbm.newConnection();

String str= "select departmentname from dpt_department where departmentid='"+dptid+"'"; //获取唯一id

String dptName =dbm.executeQueryString(str);

fileName=dptName+"部门安全可控清单汇总"+"_"+userid+"_"+names+".xls";//创建sheet页,并写入内容

createSheet(dbm,wb,getCardInfo(dbm,quarter,dptid));

}catch(Exception e){

e.printStackTrace();

}finally{

dbm.closeConnection();

}

File ff= newFile(ourl);if(ff.exists()) {

ff.delete();

}

fos= newFileOutputStream(ourl);

wb.write(fos);

fos.close();

String u= "/project/system/fileAction.do?filePath=" +URLEncoder.encode(ourl)+ "&fileName=" +URLEncoder.encode(fileName);

response.sendRedirect(u);

}catch(Exception e) {

e.printStackTrace();

}

第二步:创建sheet页签

public voidcreateSheet(DBManager dbm,HSSFWorkbook w,Vector vt) throws Exception{for(int i=0;i

Hashtable ht= (Hashtable)vt.get(i);

String id= (String)ht.get("id");

String quarter= (String)ht.get("quarter");

HSSFSheet sheet= w.createSheet("安全可控清单");//写入数据

wirteSheet(dbm,sheet,w,id,quarter);

}

}

我这里页签是固定的名称

cd43686430b9d7c4945bdac4b924748b.png

可根据自己的需要根据参数来进行判断页签。如果多个页签的话 可以这样:

public voidcreateSheet(DBManager dbm,HSSFWorkbook w,Vector vt) throws Exception{

Hashtable temp= (Hashtable)vt.get(0);

String id= (String)temp.get("id");

String quarter= (String)temp.get("quarter");

System.out.println("DumpExcel.jsp id"+id+"quarter:"+quarter);//查询得到当前模板对应的页签

String sheets = "select a7 from a_templet_col_num where templet_id='"+id+"' group by a7 order by a7";

Vector sheetsVc=dbm.execu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值