HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

          知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

            BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
            167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks
          /  * 將個人信息導出到Excel表
             */
          public void grxxExportXLS(HttpServletResponse response, Grxx grxx,
              PageBean p) {
             List list = queryGrxxList(grxx, p);
             try {
              // String targetfile = getServlet().getServletContext().getRealPath(
              // "/companymanage")
              // + "/grxxlistxls.xls";
              // Method 1:創建可寫入的Excel工作薄
              // jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new
              // File(
              // targetfile));
              // Method 2:將WritableWorkbook直接寫入到輸出流
              OutputStream os = response.getOutputStream();
              String fs = "個人信息表";
              fs = new String(fs.getBytes("gb2312"), "iso8859-1");
              response.reset();// 清空輸出流
              response.setContentType("application/msexcel");// 定義輸出類型
              response.setHeader("Content-disposition", "attachment; filename="
                + fs + ".xls");// 設定輸出文件頭
              jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);

              // 創建Excel工作表
              jxl.write.WritableSheet ws = wwb.createSheet("個人信息表1", 0);
              /**
               * 19列,標題占據2行
               */
              int charTitle = 10;// 標題字體大小
              int charNormal = 10;// 標題字體大小
              // 添加帶有字型Formatting的對象

              // 用于標題
              jxl.write.WritableFont titleFont = new jxl.write.WritableFont(
                WritableFont.createFont("宋體"), charTitle, WritableFont.BOLD);

              jxl.write.WritableCellFormat titleFormat = new jxl.write.WritableCellFormat(
                titleFont);
              titleFormat.setBorder(Border.ALL, BorderLineStyle.THIN); // 線條
              titleFormat.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直對齊
              titleFormat.setAlignment(Alignment.CENTRE); // 水平對齊
              titleFormat.setWrap(true); // 是否換行
              titleFormat.setBackground(Colour.GRAY_25);// 背景色暗灰-25%
              // 用于正文
              WritableFont normalFont = new WritableFont(WritableFont
                .createFont("宋體"), charNormal);
              jxl.write.WritableCellFormat normalFormat = new jxl.write.WritableCellFormat(
                normalFont);
              normalFormat.setBorder(Border.ALL, BorderLineStyle.THIN); // 線條
              normalFormat.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直對齊
              normalFormat.setAlignment(Alignment.CENTRE);// 水平對齊
              normalFormat.setWrap(true); // 是否換行

              // 用于帶有formatting的Number對象
              WritableFont nf = new WritableFont(WritableFont
                .createFont("Times New Roman"), charNormal);
              // jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
              jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(
                nf);
              wcfN.setBorder(Border.ALL, BorderLineStyle.THIN); // 線條
              wcfN.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直對齊
              wcfN.setAlignment(Alignment.CENTRE);// 水平對齊
              wcfN.setWrap(true); // 是否換行
              /**
               * 添加標題
               */
              // 第一行
              /** *********設置列寬每個字體占charset個**************** */
              ws.mergeCells(14, 0, 18, 0); // 合并單元格,
              ws.mergeCells(10, 0, 13, 0); // 合并單元格,

              ws.mergeCells(0, 0, 0, 1); // 合并單元格,序號
              ws.setColumnView(0, 6); // 設置列寬,第1列
              ws.mergeCells(1, 0, 1, 1); // 合并單元格,公民身份證號
              ws.setColumnView(1, 9); // 設置列寬,第2列
              ws.mergeCells(2, 0, 2, 1); // 合并單元格,電腦序號
              ws.setColumnView(2, 6); // 設置列寬,第3列
              ws.mergeCells(3, 0, 3, 1); // 合并單元格,四險姓名
              ws.setColumnView(3, 6); // 設置列寬,第4列
              ws.mergeCells(4, 0, 4, 1); // 合并單元格,醫療姓名
              ws.setColumnView(4, 6); // 設置列寬,第5列
              ws.mergeCells(5, 0, 5, 1); // 合并單元格,醫療保險手冊號
              ws.setColumnView(5, 9); // 設置列寬,第6列
              ws.mergeCells(6, 0, 6, 1); // 合并單元格,四險繳費人員類別
              ws.setColumnView(6, 9); // 設置列寬,第7列
              ws.mergeCells(7, 0, 7, 1); // 合并單元格,醫療繳費人員類別
              ws.setColumnView(7, 9); // 設置列寬,第8列
              ws.mergeCells(8, 0, 8, 1); // 合并單元格,醫療參保人員類別
              ws.setColumnView(8, 9); // 設置列寬,第9列
              ws.mergeCells(9, 0, 9, 1); // 合并單元格,醫療參保狀態
              ws.setColumnView(9, 7); // 設置列寬,第10列
              ws.setColumnView(10, 6); // 設置列寬,第11列
              ws.setColumnView(11, 6); // 設置列寬,第12列
              ws.setColumnView(12, 6); // 設置列寬,第13列
              ws.setColumnView(13, 6); // 設置列寬,第14列
              ws.setColumnView(14, 6); // 設置列寬,第15列
              ws.setColumnView(15, 6); // 設置列寬,第16列
              ws.setColumnView(16, 6); // 設置列寬,第17列
              ws.setColumnView(17, 6); // 設置列寬,第18列
              ws.setColumnView(18, 6); // 設置列寬,第19列
              jxl.write.Label tit00 = new jxl.write.Label(0, 0, "序號", titleFormat);
              ws.addCell(tit00);
              jxl.write.Label tit10 = new jxl.write.Label(1, 0, "公民身份證號",
                titleFormat);
              ws.addCell(tit10);
              jxl.write.Label tit20 = new jxl.write.Label(2, 0, "電腦序號",
                titleFormat);
              ws.addCell(tit20);
              jxl.write.Label tit30 = new jxl.write.Label(3, 0, "四險姓名",
                titleFormat);
              ws.addCell(tit30);
              jxl.write.Label tit40 = new jxl.write.Label(4, 0, "醫療姓名",
                titleFormat);
              ws.addCell(tit40);
              jxl.write.Label tit50 = new jxl.write.Label(5, 0, "醫療保險手冊號",
                titleFormat);
              ws.addCell(tit50);
              jxl.write.Label tit60 = new jxl.write.Label(6, 0, "四險繳費人員類別",
                titleFormat);
              ws.addCell(tit60);
              jxl.write.Label tit70 = new jxl.write.Label(7, 0, "醫療繳費人員類別",
                titleFormat);
              ws.addCell(tit70);
              jxl.write.Label tit80 = new jxl.write.Label(8, 0, "醫療參保人員類別",
                titleFormat);
              ws.addCell(tit80);
              jxl.write.Label tit90 = new jxl.write.Label(9, 0, "醫療參保狀態",
                titleFormat);
              ws.addCell(tit90);
              jxl.write.Label tit100 = new jxl.write.Label(10, 0, "四險繳費狀態",
                titleFormat);
              ws.addCell(tit100);
              jxl.write.Label tit140 = new jxl.write.Label(14, 0, "繳費基數",
                titleFormat);
              ws.addCell(tit140);
              // 第二行
              jxl.write.Label tit101 = new jxl.write.Label(10, 1, "養老",
                titleFormat);
              ws.addCell(tit101);
              jxl.write.Label tit111 = new jxl.write.Label(11, 1, "失業",
                titleFormat);
              ws.addCell(tit111);
              jxl.write.Label tit121 = new jxl.write.Label(12, 1, "工傷",
                titleFormat);
              ws.addCell(tit121);
              jxl.write.Label tit131 = new jxl.write.Label(13, 1, "生育",
                titleFormat);
              ws.addCell(tit131);
              jxl.write.Label tit141 = new jxl.write.Label(14, 1, "養老",
                titleFormat);
              ws.addCell(tit141);
              jxl.write.Label tit151 = new jxl.write.Label(15, 1, "失業",
                titleFormat);
              ws.addCell(tit151);
              jxl.write.Label tit161 = new jxl.write.Label(16, 1, "工傷",
                titleFormat);
              ws.addCell(tit161);
              jxl.write.Label tit171 = new jxl.write.Label(17, 1, "生育",
                titleFormat);
              ws.addCell(tit171);
              jxl.write.Label tit181 = new jxl.write.Label(18, 1, "醫療",
                titleFormat);
              ws.addCell(tit181);

              double yljs = 0;// 醫療基數合計
              double yxjs = 0;// 養老基數合計
              double syjs = 0;// 失業基數合計
              double sxjs = 0;// 生育基數合計
              double gsjs = 0;// 工傷基數合計
              for (int i = 0; i < list.size(); i++) {
               Grxx xx = (Grxx) list.get(i);
               jxl.write.Label lab1 = new jxl.write.Label(0, i + 2, String
                 .valueOf(i + 1), wcfN);
               ws.addCell(lab1);// 第1列:序號
               jxl.write.Label lab2 = new jxl.write.Label(1, i + 2, xx
                 .getBzhm(), wcfN);
               ws.addCell(lab2);// 第2列:公民身份證號
               jxl.write.Label lab3 = new jxl.write.Label(2, i + 2, "字段不存在",
                 wcfN);
               ws.addCell(lab3);// 第3列:電腦序號
               jxl.write.Label lab4 = new jxl.write.Label(3, i + 2,
                 xx.getXm(), normalFormat);
               ws.addCell(lab4);// 第4列:四險姓名
               jxl.write.Label lab5 = new jxl.write.Label(4, i + 2,
                 xx.getXm(), normalFormat);
               ws.addCell(lab5);// 第5列:醫療姓名
               jxl.write.Label lab6 = new jxl.write.Label(5, i + 2, xx
                 .getBxh(), wcfN);
               ws.addCell(lab6);// 第6列:醫療保險手冊號
               jxl.write.Label lab7 = new jxl.write.Label(6, i + 2, xx
                 .getBxh(), normalFormat);
               ws.addCell(lab7);// 第7列:四險繳費人員類別
               jxl.write.Label lab8 = new jxl.write.Label(7, i + 2, "字段不存在",
                 normalFormat);
               ws.addCell(lab8);// 第8列:醫療繳費人員類別
               jxl.write.Label lab9 = new jxl.write.Label(8, i + 2, "字段不存在",
                 normalFormat);
               ws.addCell(lab9);// 第9列:醫療參保人員類別
               jxl.write.Label lab10 = new jxl.write.Label(9, i + 2, "字段不存在",
                 normalFormat);
               ws.addCell(lab10);// 第10列:醫療參保狀態
               jxl.write.Label lab11 = new jxl.write.Label(10, i + 2, "字段不存在",
                 normalFormat);
               ws.addCell(lab11);// 第11列:養老繳費狀態
               jxl.write.Label lab12 = new jxl.write.Label(11, i + 2, "字段不存在",
                 normalFormat);
               ws.addCell(lab12);// 第12列:失業繳費狀態
               jxl.write.Label lab13 = new jxl.write.Label(12, i + 2, "字段不存在",
                 normalFormat);
               ws.addCell(lab13);// 第13列:工傷繳費狀態
               jxl.write.Label lab14 = new jxl.write.Label(13, i + 2, "字段不存在",
                 normalFormat);
               ws.addCell(lab14);// 第14列:生育繳費狀態
               jxl.write.Number lab15 = new jxl.write.Number(14, i + 2, xx
                 .getGrjs().getYxjfjs().doubleValue(), wcfN);
               ws.addCell(lab15);// 第15列:養老繳費基數
               yxjs += xx.getGrjs().getYxjfjs().doubleValue();
               jxl.write.Number lab16 = new jxl.write.Number(15, i + 2, xx
                 .getGrjs().getSyjfjs().doubleValue(), wcfN);
               ws.addCell(lab16);// 第16列:失業繳費基數
               syjs += xx.getGrjs().getSyjfjs().doubleValue();
               jxl.write.Number lab17 = new jxl.write.Number(16, i + 2, xx
                 .getGrjs().getGsjfjs().doubleValue(), wcfN);
               ws.addCell(lab17);// 第17列:工傷繳費基數
               gsjs += xx.getGrjs().getGsjfjs().doubleValue();
               jxl.write.Number lab18 = new jxl.write.Number(17, i + 2, xx
                 .getGrjs().getSxjfjs().doubleValue(), wcfN);
               ws.addCell(lab18);// 第18列:生育繳費基數
               sxjs += xx.getGrjs().getSxjfjs().doubleValue();
               jxl.write.Number lab19 = new jxl.write.Number(18, i + 2, xx
                 .getGrjs().getYljfjs().doubleValue(), wcfN);
               ws.addCell(lab19);// 第19列:醫療繳費基數
               yljs += xx.getGrjs().getYljfjs().doubleValue();
              }
              /**
               * 最后一行合計
               */
              int end = list.size() + 2;
              jxl.write.Label end0 = new jxl.write.Label(0, end, "合計",
                normalFormat);
              ws.addCell(end0);
              jxl.write.Label end1 = new jxl.write.Label(1, end, "--",
                normalFormat);
              ws.addCell(end1);
              jxl.write.Label end2 = new jxl.write.Label(2, end, "--",
                normalFormat);
              ws.addCell(end2);
              jxl.write.Label end3 = new jxl.write.Label(3, end, "--",
                normalFormat);
              ws.addCell(end3);
              jxl.write.Label end4 = new jxl.write.Label(4, end, "--",
                normalFormat);
              ws.addCell(end4);
              jxl.write.Label end5 = new jxl.write.Label(5, end, "--",
                normalFormat);
              ws.addCell(end5);
              jxl.write.Label end6 = new jxl.write.Label(6, end, "--",
                normalFormat);
              ws.addCell(end6);
              jxl.write.Label end7 = new jxl.write.Label(7, end, "--",
                normalFormat);
              ws.addCell(end7);
              jxl.write.Label end8 = new jxl.write.Label(8, end, "--",
                normalFormat);
              ws.addCell(end8);
              jxl.write.Label end9 = new jxl.write.Label(9, end, "--",
                normalFormat);
              ws.addCell(end9);
              jxl.write.Label end10 = new jxl.write.Label(10, end, "--",
                normalFormat);
              ws.addCell(end10);
              jxl.write.Label end11 = new jxl.write.Label(11, end, "--",
                normalFormat);
              ws.addCell(end11);
              jxl.write.Label end12 = new jxl.write.Label(12, end, "--",
                normalFormat);
              ws.addCell(end12);
              jxl.write.Label end13 = new jxl.write.Label(13, end, "--",
                normalFormat);
              ws.addCell(end13);
              // 養老
              jxl.write.Number end14 = new jxl.write.Number(14, end, yxjs, wcfN);
              ws.addCell(end14);
              // 失業
              jxl.write.Number end15 = new jxl.write.Number(15, end, syjs, wcfN);
              ws.addCell(end15);
              // 工傷
              jxl.write.Number end16 = new jxl.write.Number(16, end, gsjs, wcfN);
              ws.addCell(end16);
              // 生育
              jxl.write.Number end17 = new jxl.write.Number(17, end, sxjs, wcfN);
              ws.addCell(end17);
              // 醫療
              jxl.write.Number end18 = new jxl.write.Number(18, end, yljs, wcfN);
              ws.addCell(end18);
              // 寫入Exel工作表
              wwb.write();
              // 關閉Excel工作薄對象
              wwb.close();
              os.close();
             } catch (Exception e) {
              e.printStackTrace();
             }
          }




          </script>

          posted on 2010-11-26 16:30 helloworld2008 閱讀(394) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 迁安市| 旺苍县| 句容市| 辉县市| 二手房| 阜新| 樟树市| 军事| 连江县| 青神县| 潞西市| 自贡市| 开江县| 濮阳市| 衡水市| 尼木县| 开化县| 睢宁县| 年辖:市辖区| 双鸭山市| 张家口市| 射洪县| 读书| 潢川县| 崇文区| 南澳县| 噶尔县| 高雄县| 界首市| 宁德市| 昭觉县| 新闻| 天镇县| 大庆市| 墨脱县| 雷州市| 丰城市| 鄂尔多斯市| 虞城县| 正镶白旗| 宜阳县|