poi导表出词格的操作讲解

  

<强>一、效果如下

  

 poi导表出词格的操作讲解

  

<强>二,js代码

        函数export_word(){//导出单词   var url=" czzsca/exportWord.do”;   this.export (url);   }   函数导出(url) {   var currentyear=$ (" # mainYear”) .val () * 1;   var key_columns=[“xh”、“d_name”、“d_unit”、“d_number”、“d_estimate”、“d_lastyear”、“jnjh”、“d_remarks”、“d_depart”、“d_executeunit”);   var value_columns=['序号”、“项目名称”、“单位”,“数量”,“总概算”、“至”+ (currentyear-1) +“年完成”,currentyear +“年计划的,“附注”、“责任部门”、“计划执行单位”);   window.location。href=https://www.yisu.com/zixun/url + " & # 63; key_columns=" + key_columns +”, value_columns=" + value_columns +”,标题=" + currentyear +“年更新改造计划正式计划草案”;   }      

<强>三、控制器代码

  

(控制器代码比较长,主要是格式化每一行的数据,主要是往工具类里传List在参数,泛型的List是每一行,弦是每一列)

     //导出单词   @RequestMapping ("/exportWord.do”)   @ResponseBody   公共ReturnMsg exportWord (String [] key_columns, String [] value_columns,字符串标题,HttpServletResponse响应){   ReturnMsg rm=new ReturnMsg ();   尝试{   response.setCharacterEncoding(“utf - 8”);   response.setContentType(“应用程序/msexcle”);   响应。setHeader(“附加”,“附件;文件名=" +新字符串(“正式计划草案”.getBytes (“gb2312”)、“ISO8859-1”) + . doc);   List比;内容=new ArrayList比;头=new ArrayList在();   字符串jnjhzh=new BigDecimal (this.map.get (jnjhzh)==null | |”“.equals (this.map.get (“jnjhzh”) + " ") & # 63;“0”: this.map.get (“jnjhzh”) + " ")。RoundingMode.UP setScale (1) + ";   字符串trimpro=new BigDecimal (this.map.get (tzjh)==null | |”“.equals (this.map.get (“tzjh”) + " ") & # 63;“0”: this.map.get (“tzjh”) + " ")。RoundingMode.UP setScale (1) + ";   字符串temp=new BigDecimal (trimpro)。减去(新BigDecimal (jnjhzh)) + ";   如果(“0”.equals(临时)){   temp=" ";   }   头=ExportUtil。getCzzscaList (jnjhzh trimpro、临时);   地图dounit=new HashMap ();   dounit。(“dwlx”, 0);   dounit。(" user_type ", 1);   Listd_executeunit=unitDao.selectByPrimaryKey (dounit);   地图zrbm=new HashMap ();   zrbm。(" dwlx ", 1);   zrbm。(" user_type ", 1);   Listd_zrbm=unitDao.selectByPrimaryKey (zrbm);   Listzmtype=nd_caController.findProType (“2-3-4”);   (地图地图:this.list) {   List行=new ArrayList ();   for (int i=0;我& lt;key_columns.length;我+ +){   System.out.print (map.get (key_columns[我])+ ",");   对象Otzjh=map.get (“tzjh”) !=null # 63; map.get (“tzjh”): 0;   对象Ojnjh=map.get (“jnjh”) !=null # 63; map.get (“jnjh”): 0;   BigDecimal tzjh=零;   BigDecimal jnjh=零;   如果(tzjh .equals (key_columns[我])| |“jnjh .equals (key_columns[我])| |“d_lnorde .equals (key_columns[我])){   如果(Otzjh instanceof BigDecimal) {   tzjh=(BigDecimal) Otzjh;   其他}{   tzjh=new BigDecimal (Otzjh + " ");   }   如果(Ojnjh instanceof BigDecimal) {   jnjh=(BigDecimal) Ojnjh;   其他}{   jnjh=new BigDecimal (Ojnjh + " ");   }      }   如果(d_lnorde .equals (key_columns[我])){   如果(map.get(“国旗”)!=null&,“2”.equals ((map.get(“国旗”)+ " "))){   row.add (" ");   其他}{   row.add (tzjh.subtract (jnjh)。RoundingMode.UP setScale (1) + " ");//不为整数则四舍五入   }   }else if (xh .equals (key_columns[我]),和map.get (“xh”) !=null) {   如果(map.get (xh) .toString () .indexOf(", ")在1){   row.add (map.get (xh) .toString ()。替换(”、“”、“).trim ());   其他}{   row.add (map.get (“xh”) + " ");//不为整数则四舍五入   }   }else if (tzjh .equals (key_columns[我]),和map.get (“tzjh”) !=null) {   如果(ExportUtil.isNumeric (tzjh + " ")){//判断相减是否为整数   row.add (tzjh + " ");   其他}{   字符串stzjh=tzjh。RoundingMode.UP setScale (1) + ";   row.add (“0”.equals (stzjh.charAt (stzjh.indexOf (“。”) + 1) + " ") & # 63; stzjh.replace (”。0”、“”):stzjh);//不为整数则四舍五入   }   }else if (d_estimate .equals (key_columns[我]),和map.get (“d_estimate”) !=null) {   如果(“0”.equals (map.get (“d_estimate”) + " ")) {   row.add (" ");   其他}{   row.add (map.get (“d_estimate”) + " ");   }   }else if (d_number .equals (key_columns[我]),和map.get (“d_number”) !=null) {   如果(“0”.equals (map.get (“d_number”) + " ")) {   row.add (" ");   其他}{   row.add (map.get (“d_number”) + " ");   }   }else if (jnjh .equals (key_columns[我]),和map.get (“jnjh”) !=null) {   如果(ExportUtil.isNumeric (jnjh + " ")){//判断相减是否为整数   row.add (jnjh + " ");   其他}{   字符串sjnjh=jnjh。RoundingMode.UP setScale (1) + ";   row.add (“0”.equals (sjnjh.charAt (sjnjh.indexOf (“。”) + 1) + " ") & # 63; sjnjh.replace (”。0”、“”):sjnjh);//不为整数则四舍五入   }   }else if (d_pro_type .equals (key_columns[我]),和map.get (“d_pro_type”) !=null) {   (地图m: zmtype) {   如果((map.get (“d_pro_type”) + " ") .equals (m.get (“TYPE_ID”) + " ")) {   row.add (m.get (“NUM”) + " ");   打破;   }   }   }else if (d_depart .equals (key_columns[我]),和map.get (“d_depart”) !=null) {   字符串d_depart=map.get (“d_depart”) + ";   字符串离开=" ";   (地图m: d_zrbm) {   如果(d_depart .indexOf(", ")在1){   字符串(字符串:d_depart.split (", ")) {   如果((string) .equals (m.get (" ID ") + " ")) {   离开+=薄ⅰ? m.get(单位的名字)+ ";   打破;   }   }   其他}{   如果(d_depart .equals (m.get (" ID ") + " ")) {   离开=薄ⅰ? m.get(“单位的名字”)+“”;   打破;   }   }   }   如果(StringUtils.isNotBlank(离开)){   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

poi导表出词格的操作讲解