标签:poi spring mvc mybatis jxl hssf
我们之前学习了POI技术,可以利用POI进行自定义excel文件的生成。我们接下来就将利用这一技术来实现我们的出货表的打印。<%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../base.jsp"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>打印出货表</title> <script language="javascript" src="${ctx}/js/datepicker/WdatePicker.js"></script> </head> <body> <form method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <li id="save"><a href="#" onclick="formSubmit('print.action','_self');">打印</a></li> </ul> </div> </div> </div> </div> <div class="textbox" id="centerTextbox"> <div class="textbox-header"> <div class="textbox-inner-header"> <div class="textbox-title"> 出货表月统计 </div> </div> </div> <div> <div> <table class="commonTable" cellspacing="1"> <tr> <td class="columnTitle_mustbe">船期:</td> <td class="tableContent"> <input type="text" style="width: 90px" name="inputDate" readonly class="Wdate" onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM'});"/> </td> </tr> </table> </div> </div> </form> </body> </html>
package cn.hpu.jk.controller.cargo.outproduct; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import cn.hpu.jk.controller.BaseController; @Controller public class OutProductController extends BaseController{ //转向输入年月的页面 @RequestMapping("/cargo/outproduct/toedit.action") public String toedit(){ return "/cargo/outproduct/jOutProduct.jsp"; } //打印 @RequestMapping("/cargo/outproduct/print.action") public void print(String inputDate){ //inputDate格式:yyyy-MM System.out.println(inputDate); } }
</div> <div class="panel"> <div class="panel_icon"><img src="${ctx}/skin/default/images/icon/document_into.png"/></div> <div class="panel-header"> <div class="panel-title">货运管理</div> <div class="panel-content"> <ul> <li><a href="${ctx }/cargo/contract/list.action" onclick="linkHighlighted(this)" target="main" id="aa_1">购销合同</a></li> <li><a href="${ctx }/cargo/outproduct/toedit.action" onclick="linkHighlighted(this)" target="main" id="aa_1">出货表</a></li> </ul> </div> </div> </div>
效果:
select c.custom_name,c.contract_no,cp.product_no,cp.cnumber,cp.factory_name,cp.exts,c.delivery_period,c.ship_time,c.trade_terms from ( select contract_id,custom_name,contract_no,delivery_period,ship_time,trade_terms from contract_c ) c left join ( select contract_id,product_no,cnumber||packing_unit as cnumber,factory_name,exts from contract_product_c ) cp on c.contract_id=cp.contract_id where to_char(c.ship_time,'yyyy-MM')= '2014-11'
package cn.hpu.jk.vo; public class OutProductVO { private String customName; private String contract_no; private String productNo; private String cnumber; private String factoryName; private String exts; private String delivery_preriod; private String ship_time; private String tradeTerms; //get和set方法省略 }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.hpu.jk.mapper.OutProductMapper"> <resultMap type="cn.hpu.jk.vo.OutProductVO" id="OutProductRM"> <result property="customName" column="CUSTOM_NAME" jdbcType="VARCHAR"/> <result property="contractNo" column="CONTRACT_NO" jdbcType="VARCHAR"/> <result property="productNo" column="PRODUCT_NO" jdbcType="VARCHAR"/> <result property="cnumber" column="CNUMBER" jdbcType="VARCHAR"/> <result property="factoryName" column="FACTORY_NAME" jdbcType="VARCHAR"/> <result property="exts" column="EXTS" jdbcType="VARCHAR"/> <result property="delivery_preriod" column="DELIVERY_PRERIOD" jdbcType="VARCHAR"/> <result property="ship_time" column="SHIP_TIME" jdbcType="VARCHAR"/> <result property="tradeTerms" column="TRADE_TERMS" jdbcType="VARCHAR"/> </resultMap> <select id="find" parameterType="string" resultMap="OutProductRM"> select c.custom_name,c.contract_no,cp.product_no,cp.cnumber,cp.factory_name,cp.exts, to_char(c.delivery_period,'yyyy-mm-dd')as delivery_period, to_char(c.ship_time,'yyyy-mm-dd')as ship_time,c.trade_terms from ( select contract_id,custom_name,contract_no,delivery_period,ship_time,trade_terms from contract_c ) c left join ( select contract_id,product_no,cnumber||packing_unit as cnumber,factory_name,exts from contract_product_c ) cp on c.contract_id=cp.contract_id where to_char(c.ship_time,'yyyy-MM')= #{inputDate} </select> </mapper>
package cn.hpu.jk.dao; import cn.hpu.jk.vo.OutProductVO; public interface OutProductDao extends BaseDao<OutProductVO>{ }
package cn.hpu.jk.dao.impl; import org.springframework.stereotype.Repository; import cn.hpu.jk.dao.OutProductDao; import cn.hpu.jk.vo.OutProductVO; @Repository //为了包扫描的时候这个Dao被扫描到 public class OutProductDaoImpl extends BaseDaoImpl<OutProductVO> implements OutProductDao{ public OutProductDaoImpl(){ //设置命名空间 super.setNs("cn.hpu.jk.mapper.OutProductMapper"); } }
package cn.hpu.jk.service; import java.util.List; import cn.hpu.jk.vo.OutProductVO; public interface OutProductService { public List<OutProductVO> find(String inputDate); }
package cn.hpu.jk.service.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import cn.hpu.jk.dao.OutProductDao; import cn.hpu.jk.service.OutProductService; import cn.hpu.jk.vo.OutProductVO; public class OutProductServiceImpl implements OutProductService{ @Resource OutProductDao outProductDao; @Override public List<OutProductVO> find(String inputDate) { Map paraMap=new HashMap(); paraMap.put("inputDate", inputDate); return outProductDao.find(paraMap); } }
<bean name="outProductService" class="cn.hpu.jk.service.impl.OutProductServiceImpl"/>
package cn.hpu.jk.controller.cargo.outproduct; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import cn.hpu.jk.controller.BaseController; import cn.hpu.jk.service.OutProductService; import cn.hpu.jk.vo.OutProductVO; @Controller public class OutProductController extends BaseController{ @Resource OutProductService outProductService; //转向输入年月的页面 @RequestMapping("/cargo/outproduct/toedit.action") public String toedit(){ return "/cargo/outproduct/jOutProduct.jsp"; } //打印 @RequestMapping("/cargo/outproduct/print.action") public void print(String inputDate){ //inputDate格式:yyyy-MM List<OutProductVO> dataList=outProductService.find(inputDate); System.out.println(dataList.size()); System.out.println(inputDate); } }
//打印 @RequestMapping("/cargo/outproduct/print.action") public void print(String inputDate) throws IOException{ //inputDate格式:yyyy-MM List<OutProductVO> dataList=outProductService.find(inputDate); /*System.out.println(dataList.size()); System.out.println(inputDate);*/ Workbook wb=new HSSFWorkbook(); Sheet sheet=wb.createSheet(); Row nRow=null; Cell nCell=null; int rowNo=0; //行号 int cellNo=1;//列号 rowNo++; //配置标题行 String [] title=new String[]{"客户","订单号","货号","数量","工厂","附件","工厂交期","船期","贸易条款"}; nRow=sheet.createRow(rowNo++); for (int i = 0; i < title.length; i++) { nCell=nRow.createCell(i+1); nCell.setCellValue(title[i]); } //处理数据 for (int i = 0; i < dataList.size(); i++) { OutProductVO op=dataList.get(i); nRow=sheet.createRow(rowNo++); cellNo=1;//列号初始化 nCell=nRow.createCell(cellNo++); nCell.setCellValue(op.getCustomName()); nCell=nRow.createCell(cellNo++); nCell.setCellValue(op.getcontractNo()); nCell=nRow.createCell(cellNo++); nCell.setCellValue(op.getProductNo()); nCell=nRow.createCell(cellNo++); nCell.setCellValue(op.getCnumber()); nCell=nRow.createCell(cellNo++); nCell.setCellValue(op.getFactoryName()); nCell=nRow.createCell(cellNo++); nCell.setCellValue(op.getExts()); nCell=nRow.createCell(cellNo++); nCell.setCellValue(op.getDelivery_preriod()); nCell=nRow.createCell(cellNo++); nCell.setCellValue(op.getShip_time()); nCell=nRow.createCell(cellNo++); nCell.setCellValue(op.getTradeTerms()); } OutputStream os=new FileOutputStream(new File("F:\\outproduct.xls")); wb.write(os); os.close(); }
但是我们还需要修饰使表看起来更加好看,并添加下载链接,我们在下一篇继续讨论。
转载请注明出处:http://blog.csdn.net/acmman/article/details/48710311
版权声明:本文为博主原创文章,未经博主允许不得转载。
【springmvc+mybatis项目实战】杰信商贸-25.出货表打印
标签:poi spring mvc mybatis jxl hssf
原文地址:http://blog.csdn.net/acmman/article/details/48710311