• Java使用POI实现数据导出excel报表


    Java使用POI实现数据导出excel报表

      在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式。不仅仅简单的读取office中的数据.尤其是在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作。而数据导出的格式一般是EXCEL或者PDF 。所以今天我们来简单看一下利用Apache  POI实现数据库中数据导出excel报表。在java中有很多实现数据导出excel报表的第三方jar包。但在比较了一下感觉还是POI相对来说比较好用。如果大家想学习其他的导出方式可以自行研究一下。

     

    首先来了解一下 Apache POI

     

         Apache POI 是用Java编写的免费开源的跨平台的 Java APIApache POI提供APIJava程式对Microsoft Office格式档案读和写的功能。Apache POI 是创建和维护操作各种符合Office Open XMLOOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS WordMSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。 下面我们来看一下Apache POI 中提供的几大部分的作用:

     

     

    HSSF - 提供读写Microsoft Excel XLS格式档案的功能。  

    XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。  

    HWPF - 提供读写Microsoft Word DOC格式档案的功能。  

    HSLF - 提供读写Microsoft PowerPoint格式档案的功能。  

    HDGF - 提供读Microsoft Visio格式档案的功能。  

    HPBF - 提供读Microsoft Publisher格式档案的功能。  

    HSMF - 提供读Microsoft Outlook格式档案的功能。 

     

           本节我们所要学习的是POIexcel的操作。所以我们只需用到HSSF 这部分内容就可以了。其他的请大家自行研究吧。哈哈。

     

     

    下面我们就一步一步的来看一下如何创建一个excel报表:

     

    1. 创建新的Excel工作薄

     

    HSSFWorkbook workbook = new HSSFWorkbook();

    Excel工作簿中建一工作表,其名为缺省值。POI中还提供了其他的一些其他的workbook 构造方法。下面我们来看一下:

    Java使用POI实现数据导出excel报表_www.fengfly.com

     

     

    2.创建一个工作表

    如要新建一名为"工资表"的工作表,其语句为:  

    HSSFSheet sheet = workbook.createSheet("工资表"); 

     

    3.创建行

     在索引0的位置创建行(最顶端的行)  

    HSSFRow row = sheet.createRow(0);

     

    4.创建单元格

    在索引0的位置创建单元格(左上端)  

    HSSFCell cell = row.createCell((short) 0);

    定义单元格为字符串类型,这个字符串类型也可在创建单元格里面设置。

    cell.setCellType(HSSFCell.CELL_TYPE_STRING); 

    在单元格中输入一些内容  

    cell.setCellValue("增加值"); 

     

    5.新建一输出文件流把相应的Excel工作簿 输出到本地

    FileOutputStream fOut = new FileOutputStream(outputFile);

    workbook.write(fOut);

    fOut.flush();

    操作结束,关闭文件  

    fOut.close(); 

     

          OK,在给单元格设置下从数据库中读取的数据。这样我们就可以把数据库里面的内容导入到excel了。当然这里我们只是简单的介绍了一些POI的用法。并没有细讲,比如设置单元格里面数据的格式。单元格的一些属性设置。这些将会在我下面的例子中用到。也算是给大家一些示例吧。好了。最后看一个实例吧:

     

    EXCEL报表工具类:ExportExcel.java

     

    1. package com.bzu.search.action;  
    2.  
    3. import java.io.File;  
    4. import java.io.FileNotFoundException;  
    5. import java.io.FileOutputStream;  
    6. import java.io.IOException;  
    7.  
    8. import org.apache.poi.hssf.usermodel.HSSFCell;  
    9. import org.apache.poi.hssf.usermodel.HSSFCellStyle;  
    10. import org.apache.poi.hssf.usermodel.HSSFFont;  
    11. import org.apache.poi.hssf.usermodel.HSSFRichTextString;  
    12. import org.apache.poi.hssf.usermodel.HSSFRow;  
    13. import org.apache.poi.hssf.usermodel.HSSFSheet;  
    14. import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
    15. import org.apache.poi.hssf.util.HSSFColor;  
    16. import org.apache.poi.hssf.util.Region;  
    17.  
    18. /**  
    19.  * EXCEL报表工具类.  
    20.  *   
    21.  * @author caoyb  
    22.  * @version $Revision:$  
    23.  */ 
    24. public class ExportExcel {  
    25.  
    26.     private HSSFWorkbook wb = null;  
    27.  
    28.     private HSSFSheet sheet = null;  
    29.  
    30.     /**  
    31.      * @param wb  
    32.      * @param sheet  
    33.      */ 
    34.     public ExportExcel(HSSFWorkbook wb, HSSFSheet sheet) {  
    35.         super();  
    36.         this.wb = wb;  
    37.         this.sheet = sheet;  
    38.     }  
    39.  
    40.     /**  
    41.      * @return the sheet  
    42.      */ 
    43.     public HSSFSheet getSheet() {  
    44.         return sheet;  
    45.     }  
    46.  
    47.     /**  
    48.      * @param sheet  
    49.      *            the sheet to set  
    50.      */ 
    51.     public void setSheet(HSSFSheet sheet) {  
    52.         this.sheet = sheet;  
    53.     }  
    54.  
    55.     /**  
    56.      * @return the wb  
    57.      */ 
    58.     public HSSFWorkbook getWb() {  
    59.         return wb;  
    60.     }  
    61.  
    62.     /**  
    63.      * @param wb  
    64.      *            the wb to set  
    65.      */ 
    66.     public void setWb(HSSFWorkbook wb) {  
    67.         this.wb = wb;  
    68.     }  
    69.  
    70.     /**  
    71.      * 创建通用EXCEL头部  
    72.      *   
    73.      * @param headString  
    74.      *            头部显示的字符  
    75.      * @param colSum  
    76.      *            该报表的列数  
    77.      */ 
    78.     public void createNormalHead(String headString, int colSum) {  
    79.  
    80.         HSSFRow row = sheet.createRow(0);  
    81.  
    82.         // 设置第一行  
    83.         HSSFCell cell = row.createCell(0);  
    84.         row.setHeight((short400);  
    85.  
    86.         // 定义单元格为字符串类型  
    87.         cell.setCellType(HSSFCell.ENCODING_UTF_16);  
    88.         cell.setCellValue(new HSSFRichTextString("南京城区各网点进件统计报表"));  
    89.  
    90.         // 指定合并区域  
    91.         sheet.addMergedRegion(new Region(0, (short00, (short) colSum));  
    92.  
    93.         HSSFCellStyle cellStyle = wb.createCellStyle();  
    94.  
    95.         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐  
    96.         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐  
    97.         cellStyle.setWrapText(true);// 指定单元格自动换行  
    98.  
    99.         // 设置单元格字体  
    100.         HSSFFont font = wb.createFont();  
    101.         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
    102.         font.setFontName("宋体");  
    103.         font.setFontHeight((short300);  
    104.         cellStyle.setFont(font);  
    105.  
    106.         cell.setCellStyle(cellStyle);  
    107.     }  
    108.  
    109.     /**  
    110.      * 创建通用报表第二行  
    111.      *   
    112.      * @param params  
    113.      *            统计条件数组  
    114.      * @param colSum  
    115.      *            需要合并到的列索引  
    116.      */ 
    117.     public void createNormalTwoRow(String[] params, int colSum) {  
    118.         HSSFRow row1 = sheet.createRow(1);  
    119.         row1.setHeight((short300);  
    120.  
    121.         HSSFCell cell2 = row1.createCell(0);  
    122.  
    123.         cell2.setCellType(HSSFCell.ENCODING_UTF_16);  
    124.         cell2.setCellValue(new HSSFRichTextString("统计时间:" + params[0] + "至" 
    125.                 + params[1]));  
    126.  
    127.         // 指定合并区域  
    128.         sheet.addMergedRegion(new Region(1, (short01, (short) colSum));  
    129.  
    130.         HSSFCellStyle cellStyle = wb.createCellStyle();  
    131.         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐  
    132.         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐  
    133.         cellStyle.setWrapText(true);// 指定单元格自动换行  
    134.  
    135.         // 设置单元格字体  
    136.         HSSFFont font = wb.createFont();  
    137.         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
    138.         font.setFontName("宋体");  
    139.         font.setFontHeight((short250);  
    140.         cellStyle.setFont(font);  
    141.  
    142.         cell2.setCellStyle(cellStyle);  
    143.  
    144.     }  
    145.  
    146.     /**  
    147.      * 设置报表标题  
    148.      *   
    149.      * @param columHeader  
    150.      *            标题字符串数组  
    151.      */ 
    152.     public void createColumHeader(String[] columHeader) {  
    153.  
    154.         // 设置列头  
    155.         HSSFRow row2 = sheet.createRow(2);  
    156.  
    157.         // 指定行高  
    158.         row2.setHeight((short600);  
    159.  
    160.         HSSFCellStyle cellStyle = wb.createCellStyle();  
    161.         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐  
    162.         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐  
    163.         cellStyle.setWrapText(true);// 指定单元格自动换行  
    164.  
    165.         // 单元格字体  
    166.         HSSFFont font = wb.createFont();  
    167.         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
    168.         font.setFontName("宋体");  
    169.         font.setFontHeight((short250);  
    170.         cellStyle.setFont(font);  
    171.  
    172.         /*  
    173.          * cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单无格的边框为粗体  
    174.          * cellStyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色.  
    175.          * cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);  
    176.          * cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);  
    177.          * cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);  
    178.          * cellStyle.setRightBorderColor(HSSFColor.BLACK.index);  
    179.          * cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);  
    180.          * cellStyle.setTopBorderColor(HSSFColor.BLACK.index);  
    181.          */ 
    182.  
    183.         // 设置单元格背景色  
    184.         cellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);  
    185.         cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);  
    186.  
    187.         HSSFCell cell3 = null;  
    188.  
    189.         for (int i = 0; i < columHeader.length; i++) {  
    190.             cell3 = row2.createCell(i);  
    191.             cell3.setCellType(HSSFCell.ENCODING_UTF_16);  
    192.             cell3.setCellStyle(cellStyle);  
    193.             cell3.setCellValue(new HSSFRichTextString(columHeader[i]));  
    194.         }  
    195.  
    196.     }  
    197.  
    198.     /**  
    199.      * 创建内容单元格  
    200.      *   
    201.      * @param wb  
    202.      *            HSSFWorkbook  
    203.      * @param row  
    204.      *            HSSFRow  
    205.      * @param col  
    206.      *            short型的列索引  
    207.      * @param align  
    208.      *            对齐方式  
    209.      * @param val  
    210.      *            列值  
    211.      */ 
    212.     public void cteateCell(HSSFWorkbook wb, HSSFRow row, int col, short align,  
    213.             String val) {  
    214.         HSSFCell cell = row.createCell(col);  
    215.         cell.setCellType(HSSFCell.ENCODING_UTF_16);  
    216.         cell.setCellValue(new HSSFRichTextString(val));  
    217.         HSSFCellStyle cellstyle = wb.createCellStyle();  
    218.         cellstyle.setAlignment(align);  
    219.         cell.setCellStyle(cellstyle);  
    220.     }  
    221.  
    222.     /**  
    223.      * 创建合计行  
    224.      *   
    225.      * @param colSum  
    226.      *            需要合并到的列索引  
    227.      * @param cellValue  
    228.      */ 
    229.     public void createLastSumRow(int colSum, String[] cellValue) {  
    230.  
    231.         HSSFCellStyle cellStyle = wb.createCellStyle();  
    232.         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐  
    233.         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐  
    234.         cellStyle.setWrapText(true);// 指定单元格自动换行  
    235.  
    236.         // 单元格字体  
    237.         HSSFFont font = wb.createFont();  
    238.         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
    239.         font.setFontName("宋体");  
    240.         font.setFontHeight((short250);  
    241.         cellStyle.setFont(font);  
    242.  
    243.         HSSFRow lastRow = sheet.createRow((short) (sheet.getLastRowNum() + 1));  
    244.         HSSFCell sumCell = lastRow.createCell(0);  
    245.  
    246.         sumCell.setCellValue(new HSSFRichTextString("合计"));  
    247.         sumCell.setCellStyle(cellStyle);  
    248.         sheet.addMergedRegion(new Region(sheet.getLastRowNum(), (short0,  
    249.                 sheet.getLastRowNum(), (short) colSum));// 指定合并区域  
    250.  
    251.         for (int i = 2; i < (cellValue.length + 2); i++) {  
    252.             sumCell = lastRow.createCell(i);  
    253.             sumCell.setCellStyle(cellStyle);  
    254.             sumCell.setCellValue(new HSSFRichTextString(cellValue[i - 2]));  
    255.  
    256.         }  
    257.  
    258.     }  
    259.  
    260.     /**  
    261.      * 输入EXCEL文件  
    262.      *   
    263.      * @param fileName  
    264.      *            文件名  
    265.      */ 
    266.     public void outputExcel(String fileName) {  
    267.         FileOutputStream fos = null;  
    268.         try {  
    269.             fos = new FileOutputStream(new File(fileName));  
    270.             wb.write(fos);  
    271.             fos.close();  
    272.         } catch (FileNotFoundException e) {  
    273.             e.printStackTrace();  
    274.         } catch (IOException e) {  
    275.             e.printStackTrace();  
    276.         }  
    277.     }  

    报表生成类:ComplexExportExcelClient.java

     

    1. package com.bzu.search.action;  
    2.  
    3. import java.util.ArrayList;  
    4. import java.util.List;  
    5.  
    6. import org.apache.poi.hssf.usermodel.HSSFCell;  
    7. import org.apache.poi.hssf.usermodel.HSSFCellStyle;  
    8. import org.apache.poi.hssf.usermodel.HSSFFont;  
    9. import org.apache.poi.hssf.usermodel.HSSFRichTextString;  
    10. import org.apache.poi.hssf.usermodel.HSSFRow;  
    11. import org.apache.poi.hssf.usermodel.HSSFSheet;  
    12. import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
    13. import org.apache.poi.hssf.util.Region;  
    14.  
    15. /**  
    16.  * 拒绝件报表生成类.  
    17.  *   
    18.  * @author caoyb  
    19.  * @version $Revision:$  
    20.  */ 
    21. public class ComplexExportExcelClient {  
    22.  
    23.     private static HSSFWorkbook wb = new HSSFWorkbook();  
    24.  
    25.     private static HSSFSheet sheet = wb.createSheet();  
    26.  
    27.     @SuppressWarnings({ "unchecked""deprecation" })  
    28.     public static void main(String[] args) {  
    29.  
    30.         ExportExcel exportExcel = new ExportExcel(wb, sheet);  
    31.  
    32.         // 创建列标头LIST  
    33.         List fialList = new ArrayList();  
    34.  
    35.         fialList.add("申请人未提供任何联系方式");  
    36.         fialList.add("无工作单位信息且未提供收入来源信息");  
    37.         fialList.add("有工作单位但未提供单位地址或电话");  
    38.         fialList.add("家庭地址缺失");  
    39.         fialList.add("客户身份证明资料缺");  
    40.         fialList.add("签名缺失或签名不符合要求");  
    41.         fialList.add("其它");  
    42.  
    43.         List errorList = new ArrayList();  
    44.  
    45.         errorList.add("客户主动取消");  
    46.         errorList.add("个人征信不良");  
    47.         errorList.add("欺诈申请");  
    48.         errorList.add("申请人基本条件不符");  
    49.         errorList.add("申请材料不合规");  
    50.         errorList.add("无法正常完成征信");  
    51.         errorList.add("重复申请");  
    52.         errorList.add("其他");  
    53.  
    54.         // 计算该报表的列数  
    55.         int number = 2 + fialList.size() * 2 + errorList.size() * 2;  
    56.  
    57.         // 给工作表列定义列宽(实际应用自己更改列数)  
    58.         for (int i = 0; i < number; i++) {  
    59.             sheet.setColumnWidth(i, 3000);  
    60.         }  
    61.  
    62.         // 创建单元格样式  
    63.         HSSFCellStyle cellStyle = wb.createCellStyle();  
    64.  
    65.         // 指定单元格居中对齐  
    66.         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);  
    67.  
    68.         // 指定单元格垂直居中对齐  
    69.         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);  
    70.  
    71.         // 指定当单元格内容显示不下时自动换行  
    72.         cellStyle.setWrapText(true);  
    73.  
    74.         // 设置单元格字体  
    75.         HSSFFont font = wb.createFont();  
    76.         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
    77.         font.setFontName("宋体");  
    78.         font.setFontHeight((short200);  
    79.         cellStyle.setFont(font);  
    80.  
    81.         // 创建报表头部  
    82.         exportExcel.createNormalHead("南京地区申请资料拒件分析统计", number);  
    83.  
    84.         // 设置第二行  
    85.         String[] params = new String[] { "    年  月  日""  年  月  日" };  
    86.         exportExcel.createNormalTwoRow(params, number);  
    87.  
    88.         // 设置列头  
    89.         HSSFRow row2 = sheet.createRow(2);  
    90.  
    91.         HSSFCell cell0 = row2.createCell(0);  
    92.         cell0.setCellStyle(cellStyle);  
    93.         cell0.setCellValue(new HSSFRichTextString("机构代码"));  
    94.  
    95.         HSSFCell cell1 = row2.createCell(1);  
    96.         cell1.setCellStyle(cellStyle);  
    97.         cell1.setCellValue(new HSSFRichTextString("支行名称"));  
    98.  
    99.         HSSFCell cell2 = row2.createCell(2);  
    100.         cell2.setCellStyle(cellStyle);  
    101.         cell2.setCellValue(new HSSFRichTextString("无效件"));  
    102.  
    103.         HSSFCell cell3 = row2.createCell(2 * fialList.size() + 2);  
    104.         cell3.setCellStyle(cellStyle);  
    105.         cell3.setCellValue(new HSSFRichTextString("拒绝件"));  
    106.  
    107.         HSSFRow row3 = sheet.createRow(3);  
    108.  
    109.         // 设置行高  
    110.         row3.setHeight((short800);  
    111.  
    112.         HSSFCell row3Cell = null;  
    113.         int m = 0;  
    114.         int n = 0;  
    115.  
    116.         // 创建不同的LIST的列标题  
    117.         for (int i = 2; i < number; i = i + 2) {  
    118.  
    119.             if (i < 2 * fialList.size() + 2) {  
    120.                 row3Cell = row3.createCell(i);  
    121.                 row3Cell.setCellStyle(cellStyle);  
    122.                 row3Cell.setCellValue(new HSSFRichTextString(fialList.get(m)  
    123.                         .toString()));  
    124.                 m++;  
    125.             } else {  
    126.                 row3Cell = row3.createCell(i);  
    127.                 row3Cell.setCellStyle(cellStyle);  
    128.                 row3Cell.setCellValue(new HSSFRichTextString(errorList.get(n)  
    129.                         .toString()));  
    130.                 n++;  
    131.             }  
    132.  
    133.         }  
    134.  
    135.         // 创建最后一列的合计列  
    136.         row3Cell = row3.createCell(number);  
    137.         row3Cell.setCellStyle(cellStyle);  
    138.         row3Cell.setCellValue(new HSSFRichTextString("合计"));  
    139.  
    140.         // 合并单元格  
    141.         HSSFRow row4 = sheet.createRow(4);  
    142.  
    143.         // 合并第三行到第五行的第一列  
    144.         sheet.addMergedRegion(new Region(2, (short04, (short0));  
    145.  
    146.         // 合并第三行到第五行的第二列  
    147.         sheet.addMergedRegion(new Region(2, (short14, (short1));  
    148.  
    149.         // 合并第三行的第三列到第AA指定的列  
    150.         int aa = 2 * fialList.size() + 1;  
    151.         sheet.addMergedRegion(new Region(2, (short22, (short) aa));  
    152.  
    153.         int start = aa + 1;  
    154.  
    155.         sheet.addMergedRegion(new Region(2, (short) start, 2,  
    156.                 (short) (number - 1)));  
    157.  
    158.         // 循环合并第四行的行,并且是每2列合并成一列  
    159.         for (int i = 2; i < number; i = i + 2) {  
    160.             sheet.addMergedRegion(new Region(3, (short) i, 3, (short) (i + 1)));  
    161.  
    162.         }  
    163.  
    164.         // 根据列数奇偶数的不同创建不同的列标题  
    165.         for (int i = 2; i < number; i++) {  
    166.             if (i < 2 * fialList.size() + 2) {  
    167.  
    168.                 if (i % 2 == 0) {  
    169.                     HSSFCell cell = row4.createCell(i);  
    170.                     cell.setCellStyle(cellStyle);  
    171.                     cell.setCellValue(new HSSFRichTextString("无效量"));  
    172.                 } else {  
    173.                     HSSFCell cell = row4.createCell(i);  
    174.                     cell.setCellStyle(cellStyle);  
    175.                     cell.setCellValue(new HSSFRichTextString("占比"));  
    176.                 }  
    177.             } else {  
    178.                 if (i % 2 == 0) {  
    179.                     HSSFCell cell = row4.createCell(i);  
    180.                     cell.setCellStyle(cellStyle);  
    181.                     cell.setCellValue(new HSSFRichTextString("拒绝量"));  
    182.                 } else {  
    183.                     HSSFCell cell = row4.createCell(i);  
    184.                     cell.setCellStyle(cellStyle);  
    185.                     cell.setCellValue(new HSSFRichTextString("占比"));  
    186.                 }  
    187.             }  
    188.  
    189.         }  
    190.  
    191.         // 循环创建中间的单元格的各项的值  
    192.         for (int i = 5; i < number; i++) {  
    193.             HSSFRow row = sheet.createRow((short) i);  
    194.             for (int j = 0; j <= number; j++) {  
    195.                 exportExcel  
    196.                         .cteateCell(wb, row, (short) j,  
    197.                                 HSSFCellStyle.ALIGN_CENTER_SELECTION, String  
    198.                                         .valueOf(j));  
    199.             }  
    200.  
    201.         }  
    202.  
    203.         // 创建最后一行的合计行  
    204.         String[] cellValue = new String[number - 1];  
    205.         for (int i = 0; i < number - 1; i++) {  
    206.             cellValue[i] = String.valueOf(i);  
    207.  
    208.         }  
    209.         exportExcel.createLastSumRow(1, cellValue);  
    210.  
    211.         exportExcel.outputExcel("c:\拒绝件统计.xls");  
    212.  
    213.     }  

      运行上述两段代码你就会在c盘的根目录下看到一个拒绝件统计.xls文件

  • 相关阅读:
    Struts2SpringHibernate整合示例,一个HelloWorld版的在线书店(项目源码+详尽注释+单元测试)
    Java实现蓝桥杯勇者斗恶龙
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 224 基本计算器
    Java实现 LeetCode 224 基本计算器
  • 原文地址:https://www.cnblogs.com/xuqiudong/p/4303357.html
Copyright © 2020-2023  润新知