95992828九五至尊2

poi导出EXcel

二月 12th, 2019  |  617888九五至尊2

public ActionResult excelPrint() {   
    HSSFWorkbook workbook = new HSSFWorkbook();// 创建一个Excel文件   
    HSSFSheet sheet = workbook.createSheet();// 创建一个Excel的Sheet   
    sheet.createFreezePane(1, 3);// 冻结   
    // 设置列宽   
    sheet.setColumnWidth(0, 1000);   
    sheet.setColumnWidth(1, 3500);   
    sheet.setColumnWidth(2, 3500);   
    sheet.setColumnWidth(3, 6500);   
    sheet.setColumnWidth(4, 6500);   
    sheet.setColumnWidth(5, 6500);   
    sheet.setColumnWidth(6, 6500);   
    sheet.setColumnWidth(7, 2500);   
    // Sheet样式   
    HSSFCellStyle sheetStyle = workbook.createCellStyle();   
    // 背景色的设定   
    sheetStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);   
    // 前景色的设定   
    sheetStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);   
    // 填充模式   
    sheetStyle.setFillPattern(HSSFCellStyle.FINE_DOTS);   
    // 设置列的样式   
    for (int i = 0; i <= 14; i++) {   
      sheet.setDefaultColumnStyle((short) i, sheetStyle);   
    }   
    // 设置字体   
    HSSFFont headfont = workbook.createFont();   
    headfont.setFontName("黑体");   
    headfont.setFontHeightInPoints((short) 22);// 字体大小   
    headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 加粗   
    // 另一个样式   
    HSSFCellStyle headstyle = workbook.createCellStyle();   
    headstyle.setFont(headfont);   
    headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中   
    headstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中   
    headstyle.setLocked(true);   
    headstyle.setWrapText(true);// 自动换行   
    // 另一个字体样式   
    HSSFFont columnHeadFont = workbook.createFont();   
    columnHeadFont.setFontName("宋体");   
    columnHeadFont.setFontHeightInPoints((short) 10);   
    columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);   
    // 列头的样式   
    HSSFCellStyle columnHeadStyle = workbook.createCellStyle();   
    columnHeadStyle.setFont(columnHeadFont);   
    columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中   
    columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中   
    columnHeadStyle.setLocked(true);   
    columnHeadStyle.setWrapText(true);   
    columnHeadStyle.setLeftBorderColor(HSSFColor.BLACK.index);// 左边框的颜色   
    columnHeadStyle.setBorderLeft((short) 1);// 边框的大小   
    columnHeadStyle.setRightBorderColor(HSSFColor.BLACK.index);// 右边框的颜色   
    columnHeadStyle.setBorderRight((short) 1);// 边框的大小   
    columnHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体   
    columnHeadStyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色   
    // 设置单元格的背景颜色(单元格的样式会覆盖列或行的样式)   
    columnHeadStyle.setFillForegroundColor(HSSFColor.WHITE.index);   

    HSSFFont font = workbook.createFont();   
    font.setFontName("宋体");   
    font.setFontHeightInPoints((short) 10);   
    // 普通单元格样式   
    HSSFCellStyle style = workbook.createCellStyle();   
    style.setFont(font);   
    style.setAlignment(HSSFCellStyle.ALIGN_LEFT);// 左右居中   
    style.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP);// 上下居中   
    style.setWrapText(true);   
    style.setLeftBorderColor(HSSFColor.BLACK.index);   
    style.setBorderLeft((short) 1);   
    style.setRightBorderColor(HSSFColor.BLACK.index);   
    style.setBorderRight((short) 1);   
    style.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体   
    style.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色.   
    style.setFillForegroundColor(HSSFColor.WHITE.index);// 设置单元格的背景颜色.   
    // 另一个样式   
    HSSFCellStyle centerstyle = workbook.createCellStyle();   
    centerstyle.setFont(font);   
    centerstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中   
    centerstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中   
    centerstyle.setWrapText(true);   
    centerstyle.setLeftBorderColor(HSSFColor.BLACK.index);   
    centerstyle.setBorderLeft((short) 1);   
    centerstyle.setRightBorderColor(HSSFColor.BLACK.index);   
    centerstyle.setBorderRight((short) 1);   
    centerstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体   
    centerstyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色.   
    centerstyle.setFillForegroundColor(HSSFColor.WHITE.index);// 设置单元格的背景颜色.   

    try {   
      // 创建第一行   
      HSSFRow row0 = sheet.createRow(0);   
      // 设置行高   
      row0.setHeight((short) 900);   
      // 创建第一列   
      HSSFCell cell0 = row0.createCell(0);   
      cell0.setCellValue(new HSSFRichTextString("中非发展基金投资项目调度会工作落实情况对照表"));   
      cell0.setCellStyle(headstyle);   
      /**  
       * 合并单元格  
       *    第一个参数:第一个单元格的行数(从0开始)  
       *    第二个参数:第二个单元格的行数(从0开始)  
       *    第三个参数:第一个单元格的列数(从0开始)  
       *    第四个参数:第二个单元格的列数(从0开始)  
       */  
      CellRangeAddress range = new CellRangeAddress(0, 0, 0, 7);   
      sheet.addMergedRegion(range);   
      // 创建第二行   
      HSSFRow row1 = sheet.createRow(1);   
      HSSFCell cell1 = row1.createCell(0);   
      cell1.setCellValue(new HSSFRichTextString("本次会议时间:2009年8月31日       前次会议时间:2009年8月24日"));   
      cell1.setCellStyle(centerstyle);   
      // 合并单元格   
      range = new CellRangeAddress(1, 2, 0, 7);   
      sheet.addMergedRegion(range);   
      // 第三行   
      HSSFRow row2 = sheet.createRow(3);   
      row2.setHeight((short) 750);   
      HSSFCell cell = row2.createCell(0);   
      cell.setCellValue(new HSSFRichTextString("责任者"));   
      cell.setCellStyle(columnHeadStyle);   
      cell = row2.createCell(1);   
      cell.setCellValue(new HSSFRichTextString("成熟度排序"));   
      cell.setCellStyle(columnHeadStyle);   
      cell = row2.createCell(2);   
      cell.setCellValue(new HSSFRichTextString("事项"));   
      cell.setCellStyle(columnHeadStyle);   
      cell = row2.createCell(3);   
      cell.setCellValue(new HSSFRichTextString("前次会议要求/n/新项目的项目概要"));   
      cell.setCellStyle(columnHeadStyle);   
      cell = row2.createCell(4);   
      cell.setCellValue(new HSSFRichTextString("上周工作进展"));   
      cell.setCellStyle(columnHeadStyle);   
      cell = row2.createCell(5);   
      cell.setCellValue(new HSSFRichTextString("本周工作计划"));   
      cell.setCellStyle(columnHeadStyle);   
      cell = row2.createCell(6);   
      cell.setCellValue(new HSSFRichTextString("问题和建议"));   
      cell.setCellStyle(columnHeadStyle);   
      cell = row2.createCell(7);   
      cell.setCellValue(new HSSFRichTextString("备 注"));   
      cell.setCellStyle(columnHeadStyle);   
      // 访问数据库,得到数据集   
      List deitelVOList = getEntityManager().queryDeitelVOList();   
      int m = 4;   
      int k = 4;   
      for (int i = 0; i < deitelVOList.size(); i++) {   
        DeitelVO vo = deitelVOList.get(i);   
        String dname = vo.getDname();   
        List workList = vo.getWorkInfoList();   
        HSSFRow row = sheet.createRow(m);   
        cell = row.createCell(0);   
        cell.setCellValue(new HSSFRichTextString(dname));   
        cell.setCellStyle(centerstyle);   
        // 合并单元格   
        range = new CellRangeAddress(m, m + workList.size() - 1, 0, 0);   
        sheet.addMergedRegion(range);   
        m = m + workList.size();   

        for (int j = 0; j < workList.size(); j++) {   
          Workinfo w = workList.get(j);   
          // 遍历数据集创建Excel的行   
          row = sheet.getRow(k + j);   
          if (null == row) {   
            row = sheet.createRow(k + j);   
          }   
          cell = row.createCell(1);   
          cell.setCellValue(w.getWnumber());   
          cell.setCellStyle(centerstyle);   
          cell = row.createCell(2);   
          cell.setCellValue(new HSSFRichTextString(w.getWitem()));   
          cell.setCellStyle(style);   
          cell = row.createCell(3);   
          cell.setCellValue(new HSSFRichTextString(w.getWmeting()));   
          cell.setCellStyle(style);   
          cell = row.createCell(4);   
          cell.setCellValue(new HSSFRichTextString(w.getWbweek()));   
          cell.setCellStyle(style);   
          cell = row.createCell(5);   
          cell.setCellValue(new HSSFRichTextString(w.getWtweek()));   
          cell.setCellStyle(style);   
          cell = row.createCell(6);   
          cell.setCellValue(new HSSFRichTextString(w.getWproblem()));   
          cell.setCellStyle(style);   
          cell = row.createCell(7);   
          cell.setCellValue(new HSSFRichTextString(w.getWremark()));   
          cell.setCellStyle(style);   
        }   
        k = k + workList.size();   
      }   
      // 列尾   
      int footRownumber = sheet.getLastRowNum();   
      HSSFRow footRow = sheet.createRow(footRownumber + 1);   
      HSSFCell footRowcell = footRow.createCell(0);   
      footRowcell.setCellValue(new HSSFRichTextString("                    审  定:XXX      审  核:XXX     汇  总:XX"));   
      footRowcell.setCellStyle(centerstyle);   
      range = new CellRangeAddress(footRownumber + 1, footRownumber + 1, 0, 7);   
      sheet.addMergedRegion(range);   

      HttpServletResponse response = getResponse();   
      HttpServletRequest request = getRequest();   
      String filename = "未命名.xls";//设置下载时客户端Excel的名称   
      // 请见:http://zmx.javaeye.com/blog/622529   
      filename = Util.encodeFilename(filename, request);   
      response.setContentType("application/vnd.ms-excel");   
      response.setHeader("Content-disposition", "attachment;filename=" + filename);   
      OutputStream ouputStream = response.getOutputStream();   
      workbook.write(ouputStream);   
      ouputStream.flush();   
      ouputStream.close();   

    } catch (Exception e) {   
      e.printStackTrace();   
    }   
    return null;   
  } 
-------------------------------->>其他应用参考指南:
你可以使用开源的jexcel 的jar包里面有 Java == excel 的相互读写。
导入到Java后再写入数据库就方便了
附上使用方法:

下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码:

使用如下:

搭建环境

将下载后的文件解包,得到jxl.jar,放入classpath,安装就完成了。

基本操作

一、创建文件

拟生成一个名为“test.xls”的Excel文件,其中第一个工作表被命名为
“第一页”,大致效果如下:
Java代码
1. package test;
2.
3. // 生成Excel的类
4. import java.io.File;
5.
6. import jxl.Workbook;
7. import jxl.write.Label;
8. import jxl.write.WritableSheet;
9. import jxl.write.WritableWorkbook;
10.
11. public class CreateExcel {
12. public static void main(String args[]) {
13. try {
14. // 打开文件
15. WritableWorkbook book = Workbook.createWorkbook( new File( " test.xls " ));
16. // 生成名为“第一页”的工作表,参数0表示这是第一页
17. WritableSheet sheet = book.createSheet( " 第一页 " , 0 );
18. // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
19. // 以及单元格内容为test
20. Label label = new Label( 0 , 0 , " test " );
21.
22. // 将定义好的单元格添加到工作表中
23. sheet.addCell(label);
24.
25. /**/ /*
26. * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123
27. */
28. jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 );
29. sheet.addCell(number);
30.
31. // 写入数据并关闭文件
32. book.write();
33. book.close();
34.
35. } catch (Exception e) {
36. System.out.println(e);
37. }
38. }
39.


编译执行后,会产生一个Excel文件。

三、读取文件

以刚才我们创建的Excel文件为例,做一个简单的读取操作,程序代码如下:
Java代码
1. package test;
2.
3. // 读取Excel的类
4. import java.io.File;
5.
6. import jxl.Cell;
7. import jxl.Sheet;
8. import jxl.Workbook;
9.
10. public class ReadExcel {
11. public static void main(String args[]) {
12. try {
13. Workbook book = Workbook.getWorkbook( new File( " test.xls " ));
14. // 获得第一个工作表对象
15. Sheet sheet = book.getSheet( 0 );
16. // 得到第一列第一行的单元格
17. Cell cell1 = sheet.getCell( 0 , 0 );
18. String result = cell1.getContents();
19. System.out.println(result);
20. book.close();
21. } catch (Exception e) {
22. System.out.println(e);
23. }
24. }
25.


程序执行结果:test

四、修改文件
利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的时候,除了打开文件的方式不同之外,
其他操作和创建Excel是一样的。下面的例子是在我们已经生成的Excel文件中添加一个工作表:
Java代码
1. package test;
2.
3. import java.io.File;
4.
5. import jxl.Workbook;
6. import jxl.write.Label;
7. import jxl.write.WritableSheet;
8. import jxl.write.WritableWorkbook;
9.
10. public class UpdateExcel {
11. public static void main(String args[]) {
12. try {
13. // Excel获得文件
14. Workbook wb = Workbook.getWorkbook( new File( " test.xls " ));
15. // 打开一个文件的副本,并且指定数据写回到原文件
16. WritableWorkbook book = Workbook.createWorkbook( new File( " test.xls " ),
17. wb);
18. // 添加一个工作表
19. WritableSheet sheet = book.createSheet( " 第二页 " , 1 );
20. sheet.addCell( new Label( 0 , 0 , " 第二页的测试数据 " ));
21. book.write();
22. book.close();
23. } catch (Exception e) {
24. System.out.println(e);
25. }
26. }
27.


其他操作

一、 数据格式化

在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用。

1、 字串格式化

字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主要由WritableFont和
WritableCellFormat类来负责。假设我们在生成一个含有字串的单元格时,使用如下语句,
为方便叙述,我们为每一行命令加了编号:
Java代码
1. WritableFont font1 =
2. new WritableFont(WritableFont.TIMES, 16 ,WritableFont.BOLD); ①
3.
4. WritableCellFormat format1 = new WritableCellFormat(font1); ②
5.
6. Label label = new Label( 0 , 0 ,”data 4 test”,format1) ③
7.
8.
9. 其中①指定了字串格式:字体为TIMES,字号16,加粗显示。WritableFont有非常丰富的
10. 构造子,供不同情况下使用,jExcelAPI的java-doc中有详细列表,这里不再列出。
11.
12. ②处代码使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元格的各种
13. 属性,后面的单元格格式化中会有更多描述。
14.
15. ③处使用了Label类的构造子,指定了字串被赋予那种格式。
16.
17. 在WritableCellFormat类中,还有一个很重要的方法是指定数据的对齐方式,比如针对我们
18. 上面的实例,可以指定:
19.
20. // 把水平对齐方式指定为居中
21. format1.setAlignment(jxl.format.Alignment.CENTRE);
22.
23. // 把垂直对齐方式指定为居中
24. format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

二、单元格操作

Excel中很重要的一部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸jExcelAPI
提供了这些支持。这些操作相对比较简单,下面只介绍一下相关的API。

1、 合并单元格
Java代码
1. WritableSheet.mergeCells( int m, int n, int p, int q);
2.
3. // 作用是从(m,n)到(p,q)的单元格全部合并,比如:
4. WritableSheet sheet = book.createSheet(“第一页”, 0 );
5.
6. // 合并第一列第一行到第六列第一行的所有单元格
7. sheet.mergeCells( 0 , 0 , 5 , 0 );

合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触发异常。

3、用于Excel视图的视图子类化
为了在生成输出文档的过程中实现定制的行为,我们将继承合适的抽象类。对于Excel,这包括提供一个 org.springframework.web.servlet.view.document.AbstractExcelView的子类,并实现 buildExcelDocument方法。
Java代码
1. public class ViewExcel extends AbstractExcelView {
2.
3. public void buildExcelDocument(
4. Map model, HSSFWorkbook workbook,
5. HttpServletRequest request, HttpServletResponse response)
6. throws Exception {
7.
8. HSSFSheet sheet = workbook.createSheet("list");
9. sheet.setDefaultColumnWidth((short) 12);
10.
11.
12. HSSFCell cell = getCell(sheet, 0, 0);
13. setText(cell, "Spring Excel test");
14.
15. HSSFCellStyle dateStyle = workbook.createCellStyle();
16. dateStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
17. cell = getCell(sheet, 1, 0);
18. cell.setCellValue(new Date());
19. cell.setCellStyle(dateStyle);
20. getCell(sheet, 2, 0).setCellValue(458);
21.
22. HSSFRow sheetRow = sheet.createRow(3);
23. for (short i = 0; i < 10; i++) {
24. sheetRow.createCell(i).setCellValue(i * 10);
25. }
26.
27. }
28.
29. }

package com.icss.tools.excel;

 

 

  1. public ActionResult excelPrint() {
      
  2.     HSSFWorkbook workbook = new HSSFWorkbook();// 成立一个Excel文件   
  3.     HSSFSheet sheet = workbook.createSheet();// 创制一个Excel的Sheet   
  4.     sheet.createFreezePane(1, 3);// 冻结   
  5.     // 设置列宽   
  6.     sheet.setColumnWidth(0, 1000);   
  7.     sheet.setColumnWidth(1, 3500);   
  8.     sheet.setColumnWidth(2, 3500);   
  9.     sheet.setColumnWidth(3, 6500);   
  10.     sheet.setColumnWidth(4, 6500);   
  11.     sheet.setColumnWidth(5, 6500);   
  12.     sheet.setColumnWidth(6, 6500);   
  13.     sheet.setColumnWidth(7, 2500);   
  14.     // Sheet样式   
  15.     HSSFCellStyle sheetStyle = workbook.createCellStyle();   
  16.     // 背景象的设定   
  17.     sheetStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);
      
  18.     // 前景观的设定   
  19.     sheetStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
      
  20.     // 填充方式   
  21.     sheetStyle.setFillPattern(HSSFCellStyle.FINE_DOTS);   
  22.     // 设置列的体制   
  23.     for (int i = 0; i <= 14; i++) {   
  24.       sheet.setDefaultColumnStyle((short) i, sheetStyle);
      
  25.     }   
  26.     // 设置字体   
  27.     HSSFFont headfont = workbook.createFont();   
  28.     headfont.setFontName(“黑体”);
      
  29.     headfont.setFontHeightInPoints((short) 22);// 字体大小   
  30.     headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 加粗   
  31.     // 另一个体制   
  32.     HSSFCellStyle headstyle = workbook.createCellStyle();   
  33.     headstyle.setFont(headfont);   
  34.     headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中   
  35.     headstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中   
  36.     headstyle.setLocked(true);
      
  37.     headstyle.setWrapText(true);// 自动换行   
  38.     // 另一个字体样式   
  39.     HSSFFont columnHeadFont = workbook.createFont();   
  40.     columnHeadFont.setFontName(“宋体”);
      
  41.     columnHeadFont.setFontHeightInPoints((short) 10);   
  42.     columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);   
  43.     // 列头的体制   
  44.     HSSFCellStyle columnHeadStyle = workbook.createCellStyle();   
  45.     columnHeadStyle.setFont(columnHeadFont);   
  46.     columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中   
  47.     columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中   
  48.     columnHeadStyle.setLocked(true);
      
  49.     columnHeadStyle.setWrapText(true);
      
  50.     columnHeadStyle.setLeftBorderColor(HSSFColor.BLACK.index);// 左侧框的颜色   
  51.     columnHeadStyle.setBorderLeft((short) 1);// 边框的大大小小   
  52.     columnHeadStyle.setRightBorderColor(HSSFColor.BLACK.index);// 左侧框的颜色   
  53.     columnHeadStyle.setBorderRight((short) 1);// 边框的大小   
  54.     columnHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体   
  55.     columnHeadStyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色   
  56.     // 设置单元格的背景颜色(单元格的样式会覆盖列或行的样式)   
  57.     columnHeadStyle.setFillForegroundColor(HSSFColor.WHITE.index);
      
  58.   
  59.     HSSFFont font = workbook.createFont();   
  60.     font.setFontName(“宋体”);
      
  61.     font.setFontHeightInPoints((short) 10);   
  62.     // 普通单元格样式   
  63.     HSSFCellStyle style = workbook.createCellStyle();   
  64.     style.setFont(font);   
  65.     style.setAlignment(HSSFCellStyle.ALIGN_LEFT);// 左右居中   
  66.     style.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP);// 上下居中   
  67.     style.setWrapText(true);
      
  68.     style.setLeftBorderColor(HSSFColor.BLACK.index);   
  69.     style.setBorderLeft((short) 1);   
  70.     style.setRightBorderColor(HSSFColor.BLACK.index);   
  71.     style.setBorderRight((short) 1);   
  72.     style.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体   
  73.     style.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色.   
  74.     style.setFillForegroundColor(HSSFColor.WHITE.index);// 设置单元格的背景颜色.   
  75.     // 另一个样式   
  76.     HSSFCellStyle centerstyle = workbook.createCellStyle();   
  77.     centerstyle.setFont(font);   
  78.     centerstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中   
  79.     centerstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中   
  80.     centerstyle.setWrapText(true);
      
  81.     centerstyle.setLeftBorderColor(HSSFColor.BLACK.index);   
  82.     centerstyle.setBorderLeft((short) 1);   
  83.     centerstyle.setRightBorderColor(HSSFColor.BLACK.index);   
  84.     centerstyle.setBorderRight((short) 1);   
  85.     centerstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体   
  86.     centerstyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色.   
  87.     centerstyle.setFillForegroundColor(HSSFColor.WHITE.index);// 设置单元格的背景颜色.   
  88.   
  89.     try {
      
  90.       // 创立第一行   
  91.       HSSFRow row0 = sheet.createRow(0);   
  92.       // 设置行高   
  93.       row0.setHeight((short) 900);   
  94.       // 创设第一列   
  95.       HSSFCell cell0 = row0.createCell(0);   
  96.       cell0.setCellValue(new HSSFRichTextString(“中国和北美洲向上开销投资项目调度会工作达成意况对照表”));
      
  97.       cell0.setCellStyle(headstyle);   
  98.       /**  
  99.        * 合并单元格  
  100.        *    首个参数:第二个单元格的行数(从0伊始)  
  101.        *    首个参数:第四个单元格的行数(从0伊始)  
  102.        *    第七个参数:第四个单元格的列数(从0开首)  
  103.        *    第多少个参数:第一个单元格的列数(从0初步)  
  104.        */  
  105.       CellRangeAddress range = new CellRangeAddress(0, 0, 0, 7);   
  106.       sheet.addMergedRegion(range);   
  107.       // 创设第二行   
  108.       HSSFRow row1 = sheet.createRow(1);   
  109.       HSSFCell cell1 = row1.createCell(0);   
  110.       cell1.setCellValue(new HSSFRichTextString(“这一次会议时间:二〇〇九年1九月31日       前次会议时间:二〇〇九年四月24日”));
      
  111.       cell1.setCellStyle(centerstyle);   
  112.       // 合并单元格   
  113.       range = new CellRangeAddress(1, 2, 0, 7);   
  114.       sheet.addMergedRegion(range);   
  115.       // 第三行   
  116.       HSSFRow row2 = sheet.createRow(3);   
  117.       row2.setHeight((short) 750);   
  118.       HSSFCell cell = row2.createCell(0);   
  119.       cell.setCellValue(new HSSFRichTextString(“责任者”));
      
  120.       cell.setCellStyle(columnHeadStyle);   
  121.       cell = row2.createCell(1);   
  122.       cell.setCellValue(new HSSFRichTextString(“成熟度排序”));
      
  123.       cell.setCellStyle(columnHeadStyle);   
  124.       cell = row2.createCell(2);   
  125.       cell.setCellValue(new HSSFRichTextString(“事项”));
      
  126.       cell.setCellStyle(columnHeadStyle);   
  127.       cell = row2.createCell(3);   
  128.       cell.setCellValue(new HSSFRichTextString(“前次集会须要/n/新项目的类型概要”));
      
  129.       cell.setCellStyle(columnHeadStyle);   
  130.       cell = row2.createCell(4);   
  131.       cell.setCellValue(new HSSFRichTextString(“前一周工作进展”));
      
  132.       cell.setCellStyle(columnHeadStyle);   
  133.       cell = row2.createCell(5);   
  134.       cell.setCellValue(new HSSFRichTextString(“本周做事安顿”));
      
  135.       cell.setCellStyle(columnHeadStyle);   
  136.       cell = row2.createCell(6);   
  137.       cell.setCellValue(new HSSFRichTextString(“难点和提出”));
      
  138.       cell.setCellStyle(columnHeadStyle);   
  139.       cell = row2.createCell(7);   
  140.       cell.setCellValue(new HSSFRichTextString(“备 注”));
      
  141.       cell.setCellStyle(columnHeadStyle);   
  142.       // 访问数据库,得到数码集   
  143.       List deitelVOList = getEntityManager().queryDeitelVOList();
      
  144.       int m = 4;   
  145.       int k = 4;   
  146.       for (int i = 0; i < deitelVOList.size(); i++) {
      
  147.         DeitelVO vo = deitelVOList.get(i);   
  148.         String dname = vo.getDname();   
  149.         List workList = vo.getWorkInfoList();   
  150.         HSSFRow row = sheet.createRow(m);   
  151.         cell = row.createCell(0);   
  152.         cell.setCellValue(new HSSFRichTextString(dname));
      
  153.         cell.setCellStyle(centerstyle);   
  154.         // 合并单元格   
  155.         range = new CellRangeAddress(m, m + workList.size() – 1, 0, 0);   
  156.         sheet.addMergedRegion(range);   
  157.         m = m + workList.size();   
  158.   
  159.         for (int j = 0; j < workList.size(); j++) {
      
  160.           Workinfo w = workList.get(j);   
  161.           // 遍历数据集创设Excel的行   
  162.           row = sheet.getRow(k + j);   
  163.           if (null == row) {
      
  164.             row = sheet.createRow(k + j);   
  165.           }   
  166.           cell = row.createCell(1);   
  167.           cell.setCellValue(w.getWnumber());   
  168.           cell.setCellStyle(centerstyle);   
  169.           cell = row.createCell(2);   
  170.           cell.setCellValue(new HSSFRichTextString(w.getWitem()));
      
  171.           cell.setCellStyle(style);   
  172.           cell = row.createCell(3);   
  173.           cell.setCellValue(new HSSFRichTextString(w.getWmeting()));
      
  174.           cell.setCellStyle(style);   
  175.           cell = row.createCell(4);   
  176.           cell.setCellValue(new HSSFRichTextString(w.getWbweek()));
      
  177.           cell.setCellStyle(style);   
  178.           cell = row.createCell(5);   
  179.           cell.setCellValue(new HSSFRichTextString(w.getWtweek()));
      
  180.           cell.setCellStyle(style);   
  181.           cell = row.createCell(6);   
  182.           cell.setCellValue(new HSSFRichTextString(w.getWproblem()));
      
  183.           cell.setCellStyle(style);   
  184.           cell = row.createCell(7);   
  185.           cell.setCellValue(new HSSFRichTextString(w.getWremark()));
      
  186.           cell.setCellStyle(style);   
  187.         }   
  188.         k = k + workList.size();   
  189.       }   
  190.       // 列尾   
  191.       int footRownumber = sheet.getLastRowNum();
      
  192.       HSSFRow footRow = sheet.createRow(footRownumber + 1);   
  193.       HSSFCell footRowcell = footRow.createCell(0);   
  194.       footRowcell.setCellValue(new HSSFRichTextString(”                    审  定:XXX      审  核:XXX     汇  总:XX”));
      
  195.       footRowcell.setCellStyle(centerstyle);   
  196.       range = new CellRangeAddress(footRownumber + 1, footRownumber + 1, 0, 7);   
  197.       sheet.addMergedRegion(range);   
  198.   
  199.       HttpServletResponse response = getResponse();   
  200.       HttpServletRequest request = getRequest();   
  201.       String filename = “未命名.xls”;//设置下载时客户端Excel的称谓   
  202.       // 请见:http://zmx.javaeye.com/blog/622529   
  203.       filename = Util.encodeFilename(filename, request);   
  204.       response.setContentType(“application/vnd.ms-excel”);
      
  205.       response.setHeader(“Content-disposition”, “attachment;filename=” + filename);
      
  206.       OutputStream ouputStream = response.getOutputStream();   
  207.       workbook.write(ouputStream);   
  208.       ouputStream.flush();   
  209.       ouputStream.close();   
  210.   
  211.     } catch (Exception e) {
      
  212.       e.printStackTrace();   
  213.     }   
  214.     return null;
      
  215.   } 
  216. ——————————–>>其余使用参考指南:
  217. 你可以使用开源的jexcel
    的jar包里面有 Java == excel 的竞相读写。
    导入到Java后再写入数据库就便于了
    沾满使用办法:

    上边那些是在付出中用到的有些事物,有的代码贴的不是完整的,只是贴出了有关操作EXCEL的代码:

    行使如下:

    搭建环境

    将下载后的文书解包,得到jxl.jar,放入classpath,安装就完事了。

    基本操作

    一、创设文件

    拟生成一个名为“test.xls”的Excel文件,其中第四个工作表被取名为
    “第一页”,大致效果如下:
    Java代码

    1. package test;
    2. // 生成Excel的类
    3. import
      java.io.File;
    4. import
      jxl.Workbook;
    5. import
      jxl.write.Label;
    6. import
      jxl.write.WritableSheet;
    7. import
      jxl.write.WritableWorkbook;
    8. public class CreateExcel
      {
    9. public static void
      main(String args[]) {
    10. try {
    11. // 打开文件
    12. WritableWorkbook book =
      Workbook.createWorkbook( new File( ” test.xls ” ));
    13. //
      生成名为“第一页”的工作表,参数0表示那是率先页
    14. WritableSheet sheet =
      book.createSheet( ” 第一页 ” , 0 );
    15. //
      在Label对象的构造子中指定单元格地点是率先列第一行(0,0)
    16. //
      以及单元格内容为test
    17. Label label = new Label( 0
      , 0 , ” test ” );
    18. //
      将概念好的单元格添加到办事表中
      23.
      sheet.addCell(label);
    19. /**/ /*
    20. * 生成一个封存数字的单元格
      必须选用Number的完整包路径,否则有语法歧义
      单元格位置是第二列,第一行,值为789.123
    21. */
    22. jxl.write.Number number =
      new jxl.write.Number( 1 , 0 , 555.12541 );
      29.
      sheet.addCell(number);
    23. //
      写入数据并关闭文件
    24. book.write();
    25. book.close();
    26. } catch (Exception e)
      {
      36.
      System.out.println(e);
    27. }
    28. }

import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

编译执行后,会产生一个Excel文件。  

三、读取文件  

以刚才我们创建的Excel文件为例,做一个简单的读取操作,程序代码如下:  
Java代码  
1. package test;  
2.  
3. // 读取Excel的类  
4. import
java.io.File;  
5.  
6. import jxl.Cell;  
7. import jxl.Sheet;  
8. import
jxl.Workbook;  
9.  
10. public class ReadExcel
{  
11. public static void
main(String args\[\]) {  
12. try {  
13. Workbook book =
Workbook.getWorkbook( new File( " test.xls " ));  
14. //
获得第一个工作表对象  
15. Sheet sheet =
book.getSheet( 0 );  
16. //
得到第一列第一行的单元格  
17. Cell cell1 = sheet.getCell(
0 , 0 );  
18. String result =
cell1.getContents();  
19.
System.out.println(result);  
20. book.close();  
21. } catch (Exception e)
{  
22.
System.out.println(e);  
23. }  
24. }  
25.  


程序执行结果:test  

四、修改文件  
利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的时候,除了打开文件的方式不同之外,  
其他操作和创建Excel是一样的。下面的例子是在我们已经生成的Excel文件中添加一个工作表:  
Java代码  
1. package test;  
2.  
3. import
java.io.File;  
4.  
5. import
jxl.Workbook;  
6. import
jxl.write.Label;  
7. import
jxl.write.WritableSheet;  
8. import
jxl.write.WritableWorkbook;  
9.  
10. public class UpdateExcel
{  
11. public static void
main(String args\[\]) {  
12. try {  
13. // Excel获得文件  
14. Workbook wb =
Workbook.getWorkbook( new File( " test.xls " ));  
15. //
打开一个文件的副本,并且指定数据写回到原文件  
16. WritableWorkbook book =
Workbook.createWorkbook( new File( " test.xls " ),  
17. wb);  
18. // 添加一个工作表  
19. WritableSheet sheet =
book.createSheet( " 第二页 " , 1 );  
20. sheet.addCell( new Label( 0
, 0 , " 第二页的测试数据 " ));  
21. book.write();  
22. book.close();  
23. } catch (Exception e)
{  
24.
System.out.println(e);  
25. }  
26. }  
27.  


其他操作  

一、 数据格式化  

在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用。  

1、 字串格式化  

字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主要由WritableFont和  
WritableCellFormat类来负责。假设我们在生成一个含有字串的单元格时,使用如下语句,  
为方便叙述,我们为每一行命令加了编号:  
Java代码  
1. WritableFont font1
=  
2. new
WritableFont(WritableFont.TIMES, 16 ,WritableFont.BOLD); ①  
3.  
4. WritableCellFormat format1 =
new WritableCellFormat(font1); ②  
5.  
6. Label label = new Label( 0 ,
0 ,”data 4 test”,format1) ③  
7.  
8.  
9.
其中①指定了字串格式:字体为TIMES,字号16,加粗显示。WritableFont有非常丰富的  
10.
构造子,供不同情况下使用,jExcelAPI的java-doc中有详细列表,这里不再列出。  
11.  
12.
②处代码使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元格的各种  
13.
属性,后面的单元格格式化中会有更多描述。  
14.  
15.
③处使用了Label类的构造子,指定了字串被赋予那种格式。  
16.  
17.
在WritableCellFormat类中,还有一个很重要的方法是指定数据的对齐方式,比如针对我们  
18.
上面的实例,可以指定:  
19.  
20. //
把水平对齐方式指定为居中  
21.
format1.setAlignment(jxl.format.Alignment.CENTRE);  
22.  
23. //
把垂直对齐方式指定为居中  
24.
format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);  

二、单元格操作  

Excel中很重要的一部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸jExcelAPI  
提供了这些支持。这些操作相对比较简单,下面只介绍一下相关的API。  

1、 合并单元格  
Java代码  
1. WritableSheet.mergeCells(
int m, int n, int p, int q);  
2.  
3. //
作用是从(m,n)到(p,q)的单元格全部合并,比如:  
4. WritableSheet sheet =
book.createSheet(“第一页”, 0 );  
5.  
6. //
合并第一列第一行到第六列第一行的所有单元格  
7. sheet.mergeCells( 0 , 0 , 5
, 0 );  

合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触发异常。  

3、用于Excel视图的视图子类化  
为了在生成输出文档的过程中实现定制的行为,我们将继承合适的抽象类。对于Excel,这包括提供一个
org.springframework.web.servlet.view.document.AbstractExcelView的子类,并实现
buildExcelDocument方法。  
Java代码  
1. public class ViewExcel
extends AbstractExcelView {  
2.  
3. public void
buildExcelDocument(  
4. Map model, HSSFWorkbook
workbook,  
5. HttpServletRequest request,
HttpServletResponse response)  
6. throws Exception {  
7.  
8. HSSFSheet sheet =
workbook.createSheet("list");  
9.
sheet.setDefaultColumnWidth((short) 12);  
10.  
11.  
12. HSSFCell cell =
getCell(sheet, 0, 0);  
13. setText(cell, "Spring Excel
test");  
14.  
15. HSSFCellStyle dateStyle =
workbook.createCellStyle();  
16.
dateStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));  
17. cell = getCell(sheet, 1,
0);  
18. cell.setCellValue(new
Date());  
19.
cell.setCellStyle(dateStyle);  
20. getCell(sheet, 2,
0).setCellValue(458);  
21.  
22. HSSFRow sheetRow =
sheet.createRow(3);  
23. for (short i = 0; i &lt;
10; i++) {  
24.
sheetRow.createCell(i).setCellValue(i \* 10);  
25. }  
26.  
27. }  
28.  
29. }

 

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFComment;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.util.Region;

 

import com.icss.core.db.Record;
import com.icss.core.db.RecordSet;

 

 

 

public class ExportExcel extends MyMethods implements IExcelConstants{

 

  
 /***
  * 导出按地区统计结果的Excel文件
  * @param title
  * @param dataSet
  * @param dataSet2
  * @param dataSet3
  * @param out
  * @param hidAreaId
  * @param hidProvinceId
  * @param apUUId
  * @param exportFirstRow
  * @param exportShowCol
  */ 
 public void exportExcel(String title, RecordSet dataSet0, RecordSet
dataSet, RecordSet dataSet2, RecordSet dataSet3, OutputStream out,
   String hidAreaId, String hidProvinceId, String apUUId, String
exportFirstRow, String exportShowCol, String nowTime)
 {
   int  [] colIntNums =
this.convertStringToIntArrays(exportShowCol);
   int  [] rowNums = this.convertStringToIntArrays(exportFirstRow);
   
  String pattern=”yyyy-MM-dd”;
  // 声美素佳儿个工作薄
  HSSFWorkbook workbook = new HSSFWorkbook();
  // 生成一个表格
  HSSFSheet sheet = workbook.createSheet(title);
  // 设置表格默许列宽度为10个字节
  sheet.setDefaultColumnWidth((short) 16);
  // 生成一个样式
  HSSFCellStyle style0 = workbook.createCellStyle();
  // 设置表头样式
  style0 = ExcelCss.makeStyle(0,workbook) ;
  // 生成一个体制
  HSSFCellStyle style = workbook.createCellStyle();
  // 设置表头样式
  style = ExcelCss.makeStyle(1,workbook) ;
  // 生成并设置另一个体制
  HSSFCellStyle style2 = workbook.createCellStyle();
  style2 = ExcelCss.makeStyle(2,workbook) ;
  // 生成并设置另一个样式
  HSSFCellStyle style3 = workbook.createCellStyle();
  style3 = ExcelCss.makeStyle(3,workbook) ;
  // 生成并设置另一个样式
  HSSFCellStyle style4 = workbook.createCellStyle();
  style4 = ExcelCss.makeStyle(4,workbook) ;
  
  // 声爱他美(Aptamil)个图画的甲级管理器
  HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
  // 定义注释的高低和职位,详见文档
  HSSFComment comment = patriarch.createComment(new HSSFClientAnchor(0,
0, 0, 0, (short) 4, 2, (short) 6, 5));
  // 设置注释内容
  comment.setString(new HSSFRichTextString(“可以在POI中添加注释!”));
  // 设置注释小编,当鼠标移动到单元格上是能够在场合栏中看到该内容.
  comment.setAuthor(“wll”);
  //爆发表格标题行
  HSSFRow row = sheet.createRow(0);
  if(rowNums!=null)
  {
  short hb1=(short)rowNums[0];
  short hb2=(short)rowNums[1];
  short hb3=(short)rowNums[2];
  sheet.addMergedRegion(new Region(0,(short)0,0,(short)(3+ hb1 + hb2 +
hb3)));
  }else
  {
   sheet.addMergedRegion(new Region(0,(short)0,0,(short)27));
  }
  HSSFCell cellHead = row.createCell(0);
  cellHead.setCellStyle(style0);
  HSSFRichTextString texth = new
HSSFRichTextString(“按地区机场生产总计”+nowTime);
  cellHead.setCellValue(texth);
  //列的统一
  sheet.addMergedRegion(new Region(1,(short)0,1,(short)2));
  sheet.addMergedRegion(new Region(2,(short)0,2,(short)2));
  //行的集合
  sheet.addMergedRegion(new Region(1,(short)1,2,(short)1));
  //行的联合
  sheet.addMergedRegion(new Region(1,(short)2,2,(short)2));
  //列的联结
  short hb1=(short)rowNums[0];
  short hb2=(short)rowNums[1];
  short hb3=(short)rowNums[2];
  //乘客吞吐量
  if(rowNums[0]>0 && rowNums[0]<8)
  {
   sheet.addMergedRegion(new Region(1,(short)4,1,(short)(4 +hb1-1)));
  }else if(rowNums[0] == 0)
  {
   sheet.addMergedRegion(new Region(1,(short)3,1,(short)(4 +hb1-1)));
  }else
  {
   sheet.addMergedRegion(new Region(1,(short)4,1,(short)11));
  }
  //货邮吞吐量
  if( rowNums[0]!=0 && rowNums[1]!=0 )
  {
   sheet.addMergedRegion(new Region(1,(short)(4 + hb1),1,(short)(4+ hb1

  • hb2 -1)));   
      }else if(rowNums[0] == 0 && rowNums[1] == 0)
      {
       sheet.addMergedRegion(new Region(1,(short)1,1,(short)1));  
      }else if(rowNums[0] != 0 && rowNums[1] == 0)
      {
       sheet.addMergedRegion(new Region(1,(short)1,1,(short)1 ));
      }else if(rowNums[0] == 0 && rowNums[1] != 0)
      {
       sheet.addMergedRegion(new Region(1,(short)4,1,(short)(4 + hb2-1)));
      }else
      {
       sheet.addMergedRegion(new Region(1,(short)12,1,(short)19));
      }
      //起降次数吞吐量
      if(rowNums[0]!=0 && rowNums[1]!=0 && rowNums[2] != 0 )
      {
       sheet.addMergedRegion(new Region(1,(short)(4+ hb1 + hb2),1,(short)(4+
    hb1 + hb2 + hb3 -1)));
      }else if(rowNums[0] == 0 && rowNums[1] == 0 && rowNums[2] ==
    0)
      {
       sheet.addMergedRegion(new Region(1,(short)(4 –
    1),1,(short)(4+hb1+hb2+hb3 – 1 )));
      }else if(rowNums[0] != 0 && rowNums[1] == 0 && rowNums[2] !=
    0)
      {
       sheet.addMergedRegion(new Region(1,(short)(4 + hb1),1,(short)(4 + hb1
  • hb3-1)));
      }else if(rowNums[0] != 0 && rowNums[1] == 0 && rowNums[2] ==
    0)
      {
       sheet.addMergedRegion(new Region(1,(short)4,1,(short)(4 + hb1-1)));
      }else if(rowNums[0] == 0 && rowNums[1] != 0 && rowNums[2] ==
    0)
      {
       sheet.addMergedRegion(new Region(1,(short)1,1,(short)1));
      }else if(rowNums[0] != 0 && rowNums[1] != 0 && rowNums[2] ==
    0)
      {
       sheet.addMergedRegion(new Region(1,(short)(4 + hb1),1,(short)(4+ hb1
  • hb2 – 1))); 
      }else if(rowNums[0] == 0 && rowNums[1] == 0 && rowNums[2] !=
    0)
      {
       sheet.addMergedRegion(new Region(1,(short)4,1,(short)(4+ hb3 –
    1))); 
      }else
      {
       sheet.addMergedRegion(new Region(1,(short)20,1,(short)27));
      }
      //第一行
      HSSFRow row1 = sheet.createRow(1);
      List<String> headerList=new ArrayList<String>();
      headerList = this.chooseList(this.headersRow1, colIntNums);
      for(int e=0; e < headerList.size(); e++)
      {
       HSSFCell cell = row1.createCell(e);
       cell.setCellStyle(style);
       HSSFRichTextString text = new
    HSSFRichTextString(headerList.get(e));
       cell.setCellValue(text);
      }
      //第二行
      HSSFRow row2 = sheet.createRow(2);
      List<String> header1tList=new ArrayList<String>();
      header1tList = this.chooseList(this.headers, colIntNums);
      for (short i = 0; i < header1tList.size(); i++)
      {
       HSSFCell cell = row2.createCell(i);
       cell.setCellStyle(style);
       HSSFRichTextString text = new
    HSSFRichTextString(header1tList.get(i));
       cell.setCellValue(text);
      }
      
      //第三行
      HSSFRow row3 = sheet.createRow(3);
      
      List<String> header2tList=new ArrayList<String>();
      
      //取得一个record对象
      Record sumRecord=dataSet0.get(0);
      header2tList = this.chooseList(this.accountHeaders, colIntNums);
      
      for(int i=0; i < header2tList.size(); i++)
      {
       if(i<3)
       {
        HSSFCell cell = row3.createCell(i);
        cell.setCellStyle(style);
        HSSFRichTextString text = new
    HSSFRichTextString(header2tList.get(i));
        cell.setCellValue(text);
       }else{
        HSSFCell cell = row3.createCell(i);
        cell.setCellStyle(style);
        HSSFRichTextString text = new
    HSSFRichTextString(sumRecord.getString(header2tList.get(i)));
        cell.setCellValue(text);
       }
      }
      int index = 3;
           
      for(int i=0; i<dataSet.size(); i++)
      {
        if(!isExsist(hidAreaId,dataSet.get(i).getString(“AREA_UUID”)))
        {
            continue;
        }
        //遍历集合数据,暴发数据行
        index++;
        row = sheet.createRow(index);
        //取得一个record对象
        Record areaRecord=dataSet.get(i);
        List<String> areaList=new ArrayList<String>();
        areaList = this.chooseList(areaTableContent, colIntNums);
        for(int m=0; m<areaList.size(); m++)
        {
         HSSFCell cellOne = row.createCell(m);
         if(m<=3)
         {
          style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
         }else
         {
          style2.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
         }
         cellOne.setCellStyle(style2);
         cellOne.setCellType(HSSFCell.CELL_TYPE_STRING);
         cellOne.setCellValue(areaRecord.getString(areaList.get(m)));
        }
                   
       for(int j=0; j<dataSet2.size(); j++)
         {
        Record provinceRecord=dataSet2.get(j);
        
        if(!isExsist(hidProvinceId,provinceRecord.getString(“PROVINCE_UUID”)))
        {
         continue;
        }
        
        if(!provinceRecord.getString(“AREA_UUID”).equals(areaRecord.getString(“AREA_UUID”)))
        {
         continue;
        }else
        {
         //遍历集合数据,爆发数据行
         index++;
         row = sheet.createRow(index);
        }
        List<String> provinceList=new ArrayList<String>();
        provinceList = this.chooseList(provinceTableContent, colIntNums);
        for(int n=0; n<provinceList.size(); n++)
        {
         HSSFCell cellTwo = row.createCell(n);
         if(n<=3)
         {
          style3.setAlignment(HSSFCellStyle.ALIGN_CENTER);
         }else
         {
          style3.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
         }
         cellTwo.setCellStyle(style3);
         cellTwo.setCellType(HSSFCell.CELL_TYPE_STRING);
         cellTwo.setCellValue(provinceRecord.getString(provinceList.get(n)));
        }
           for(int k=0; k<dataSet3.size(); k++)
           {
           Record tjfxRecord=dataSet3.get(k);
           if(!isExsist(apUUId,tjfxRecord.getString(“AP_UUID”)))
           {
            continue;
           }
           if(!provinceRecord.getString(“PROVINCE_UUID”).equals(tjfxRecord.getString(“PROVINCE_BM”)))
           {
            continue;
           }else
           {
            //遍历集合数据,发生数据行
            index++;
            row = sheet.createRow(index);
           }
           List<String> airportList=new ArrayList<String>();
           airportList = this.chooseList(airpotTableContent, colIntNums);
           for(int p=0; p<airportList.size(); p++)
           {
            HSSFCell cellthree = row.createCell(p);
            if(p<=3)
            {
             style4.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            }else
            {
             style4.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
            }
            cellthree.setCellStyle(style4);
            cellthree.setCellType(HSSFCell.CELL_TYPE_STRING);
            cellthree.setCellValue(tjfxRecord.getString(airportList.get(p)));
           }
           }
          }
      }
       try {
         workbook.write(out);
        } catch (IOException e) {
         e.printStackTrace();
        }
       }
     
     
     
    }
     
     

 

 
 /**
  * 导出按省份查询的总括结果
  * @param request
  * @param response
  */
    public void exportByProvince(HttpServletRequest
request,HttpServletResponse response){
     SimpleDateFormat df1 = new
SimpleDateFormat(“yyyy-MM”);//设置日期格式
        String today = df1.format(new Date());
        String startDate=null;
        String endDate=null;
        String sortCondition=null;
        String sortName=null;
        if(request.getParameter(“startDate”)!=null &&
!request.getParameter(“startDate”).equals(“”))
        { 
         startDate=request.getParameter(“startDate”);
        }else
        {
         startDate=today;
        }
        if(request.getParameter(“endDate”)!=null &&
!request.getParameter(“endDate”).equals(“”))
        {
         endDate=request.getParameter(“endDate”);
        }else
        {
         endDate=today;
        }
        if(request.getParameter(“sortCondition”)!=null &&
!request.getParameter(“sortCondition”).equals(“”))
        {
         sortCondition=request.getParameter(“sortCondition”);
        }else
        {
         sortCondition=sortCondition;
        }
        if(request.getParameter(“sortName”)!=null &&
!request.getParameter(“sortName”).equals(“”))
        {
         sortName=request.getParameter(“sortName”);
        }else
        {
         sortName=sortName;
        }
        String nowTime=”(” + startDate + “-” + endDate + “)”;
        String exportFirstRow=request.getParameter(“exportFirstRow”);
        String exportShowCol=request.getParameter(“exportShowCol”);
        String hidAreaId=request.getParameter(“exportAreaId”);
        String hidProvinceId=request.getParameter(“exportProvinceId”);
        String hidApUUId=request.getParameter(“apUUId”);
        request.setAttribute(“startDate”, startDate);
        request.setAttribute(“endDate”, endDate);
        TjfxHandler tjfxHandler = new TjfxHandler();
        try
        {
            RecordSet
provinceRecordSet=tjfxHandler.getProvinceTjfxSumInfo(startDate, endDate,
sortCondition, sortName);
            RecordSet tjfxRecprd=tjfxHandler.getSfTjfxSumInfo(startDate,
endDate, sortCondition, sortName);
            RecordSet sumRecordSet =
tjfxHandler.getSumTjfxInfo(startDate,endDate);
            ExportSfTjfxExcel ex = new ExportSfTjfxExcel();
            response.setContentType(“application/vnd.ms-excel”);
      response.setHeader(“Content-disposition”,”attachment; filename=”
+new String(“报表.xls”.getBytes(“gb2312”), “ISO8859-1” ) );
           
            SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd
HH-mm-ss”);//设置日期格式
            String now = df.format(new Date());
            //OutputStream out = new FileOutputStream(address);
            OutputStream out=response.getOutputStream();
            ex.exportExcel(“按省份机场生产总计”, sumRecordSet,
provinceRecordSet, tjfxRecprd, out, hidAreaId, hidProvinceId, hidApUUId,
exportFirstRow, exportShowCol, nowTime);
            out.flush();
            out.close();
      
        }
        catch (Exception e)
        {
            log.error(“系统首页:” + e);
            throw new BaseException(ErrorCode.IO_EXCEPTION, e);
        }
    }
   
    /**
     * 功用表达:处理管理局列表详细音信彰显
     *
     * @param request
     * @param response
     */
    public void handleGljInfo(HttpServletRequest request,
        HttpServletResponse response)
    {
        RequestKit requestKit = (RequestKit)
request.getAttribute(“RequestKit”);
        // 获取前台界面传入的参数值
        SimpleDateFormat df1 = new
SimpleDateFormat(“yyyy-MM”);//设置日期格式
        String today = df1.format(new Date());
        String startDate=null;
        String endDate=null;
        String sortCondition=null;
        String sortName=null;
        if(request.getParameter(“startDate”)!=null &&
!request.getParameter(“startDate”).equals(“”))
        { 
         startDate=request.getParameter(“startDate”);
        }else
        {
         startDate=today;
        }
        if(request.getParameter(“endDate”)!=null &&
!request.getParameter(“endDate”).equals(“”))
        {
         endDate=request.getParameter(“endDate”);
        }else
        {
         endDate=today;
        }
        if(request.getParameter(“sortCondition”)!=null &&
!request.getParameter(“sortCondition”).equals(“”))
        {
         sortCondition=request.getParameter(“sortCondition”);
        }else
        {
         sortCondition=sortCondition;
        }
        if(request.getParameter(“sortName”)!=null &&
!request.getParameter(“sortName”).equals(“”))
        {
         sortName=request.getParameter(“sortName”);
        }else
        {
         sortName=sortName;
        }
        request.setAttribute(“startDate”, startDate);
        request.setAttribute(“endDate”, endDate);
        request.setAttribute(“sortCondition”,sortCondition);
        request.setAttribute(“sortName”,sortName);
        TjfxHandler tjfxHandler = new TjfxHandler();
        try
        {
         RecordSet sumRecordSet =
tjfxHandler.getSumTjfxInfo(startDate,endDate);
         RecordSet
gljSumRecordSet=tjfxHandler.getGljTjfxSumInfo(startDate, endDate,
sortCondition, sortName);
            RecordSet
tjfxGljRecprdSet=tjfxHandler.getGljTjfxInfo(startDate, endDate,
sortCondition, sortName);
            request.setAttribute(“sumRecordSet”, sumRecordSet);
            request.setAttribute(“gljSumRecordSet”, gljSumRecordSet);
            request.setAttribute(“tjfxGljRecprdSet”,
tjfxGljRecprdSet);
            //SortedMap orderMap= tjfxHandler.getOrderMap();
            //request.setAttribute(“orderMap”,orderMap);
            request.setAttribute(“orderValue”,Constants.orderValue);
            request.setAttribute(“orderName”,Constants.orderName);
            forward(“/jsp/tjfx/gljtj.jsp”);
        }
        catch (ServletException e)
        {
            log.error(“系统首页:” + e);
            throw new BaseException(ErrorCode.SERVLET_EXCEPTION, e);
        }
        catch (Exception e)
        {
            log.error(“系统首页:” + e);
            throw new BaseException(ErrorCode.IO_EXCEPTION, e);
        }
    }
   
   
    /**
  * 导出按省份查询的统计结果
  * @param request
  * @param response
  */
    public void exportByGlj(HttpServletRequest
request,HttpServletResponse response){
     SimpleDateFormat df1 = new
SimpleDateFormat(“yyyy-MM”);//设置日期格式
        String today = df1.format(new Date());
        String startDate=null;
        String endDate=null;
        String sortCondition=null;
        String sortName=null;
        if(request.getParameter(“startDate”)!=null &&
!request.getParameter(“startDate”).equals(“”))
        { 
         startDate=request.getParameter(“startDate”);
        }else
        {
         startDate=today;
        }
        if(request.getParameter(“endDate”)!=null &&
!request.getParameter(“endDate”).equals(“”))
        {
         endDate=request.getParameter(“endDate”);
        }else
        {
         endDate=today;
        }
        if(request.getParameter(“sortCondition”)!=null &&
!request.getParameter(“sortCondition”).equals(“”))
        {
         sortCondition=request.getParameter(“sortCondition”);
617888九五至尊2,        }else
        {
         sortCondition=sortCondition;
        }
        if(request.getParameter(“sortName”)!=null &&
!request.getParameter(“sortName”).equals(“”))
        {
         sortName=request.getParameter(“sortName”);
        }else
        {
         sortName=sortName;
        }
        String nowTime=”(” + startDate + “-” + endDate + “)”;
        String exportFirstRow=request.getParameter(“exportFirstRow”);
        String exportShowCol=request.getParameter(“exportShowCol”);
        String hidAreaId=request.getParameter(“exportAreaId”);
        String hidOfficeId=request.getParameter(“exportProvinceId”);
        String hidApUUId=request.getParameter(“apUUId”);
        request.setAttribute(“startDate”, startDate);
        request.setAttribute(“endDate”, endDate);
       
        TjfxHandler tjfxHandler = new TjfxHandler();
        try
        {
         RecordSet
officeRecordSet=tjfxHandler.getGljTjfxSumInfo(startDate,
endDate,sortCondition, sortName);
            RecordSet tjfxRecprd=tjfxHandler.getGljTjfxInfo(startDate,
endDate, sortCondition, sortName);
            RecordSet sumRecordSet =
tjfxHandler.getSumTjfxInfo(startDate,endDate);
            ExportGljTjfxExcel ex = new ExportGljTjfxExcel();
            response.setContentType(“application/vnd.ms-excel”);
      response.setHeader(“Content-disposition”,”attachment; filename=”
+new String(“报表.xls”.getBytes(“gb2312”), “ISO8859-1” ) );
           
            SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd
HH-mm-ss”);//设置日期格式
            String now = df.format(new Date());
            //OutputStream out = new FileOutputStream(address);
            OutputStream out=response.getOutputStream();
            ex.exportGljExcel(“按管理局机场生产统计”, sumRecordSet,
officeRecordSet, tjfxRecprd, out, hidAreaId, hidOfficeId, hidApUUId,
exportFirstRow, exportShowCol,nowTime);
            out.flush();
            out.close();
      
        }
        catch (Exception e)
        {
            log.error(“系统首页:” + e);
            throw new BaseException(ErrorCode.IO_EXCEPTION, e);
        }
    }
   
   
   
    /**
     *
     * @Title: getProvinceTree
     * @Description: 获取Province树
     */
    public void getProvinceTree(HttpServletRequest request,
HttpServletResponse response)
    {
        log.debug(“getTree(request,response) enter”);
        TjfxHandler handler = new TjfxHandler();
        TreeView tree;
        String strGoPage = “/jsp/tjfx/sfTree.jsp”;
        try
        {
            tree = handler.getProvinceTree();
            log.debug(“getTree(request,response) : tree = “
                + tree.toJsonString());
            request.setAttribute(“tree”, tree);
            log.debug(“getTree(request,response) leave”);
            forwardIgnoreException(strGoPage);
        }
        catch (Exception e)
        {
            log.error(“得到航空器成立厂商树:” + e);
            log.debug(“getManufactoryTree(request,response) leave”);
            throw new BaseException(ErrorCode.EXCEPTION, e);
        }
    }
   
   
    /**
     *
     * @Title: getGljTree
     * @Description: 获取Glj树
     */
    public void getGljTree(HttpServletRequest request,
HttpServletResponse response)
    {
        log.debug(“getTree(request,response) enter”);
        TjfxHandler handler = new TjfxHandler();
        TreeView tree;
        String strGoPage = “/jsp/tjfx/gljTree.jsp”;
        try
        {
            tree = handler.getGljTreeInfo();
            log.debug(“getTree(request,response) : tree = “
                + tree.toJsonString());
            request.setAttribute(“tree”, tree);
            log.debug(“getTree(request,response) leave”);
            forwardIgnoreException(strGoPage);
        }
        catch (Exception e)
        {
            log.error(“拿到航空器创制厂商树:” + e);
            log.debug(“getManufactoryTree(request,response) leave”);
            throw new BaseException(ErrorCode.EXCEPTION, e);
        }
    }

 

 
 

 

 

 

 

 

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图