poi导出Excel

  1. import java.io.FileNotFoundException;   
  2. import java.io.FileOutputStream;   
  3. import java.io.IOException;   
  4. import java.util.Calendar;   
  5.   
  6. import org.apache.poi.hssf.usermodel.HSSFCell;   
  7. import org.apache.poi.hssf.usermodel.HSSFCellStyle;   
  8. import org.apache.poi.hssf.usermodel.HSSFDataFormat;   
  9. import org.apache.poi.hssf.usermodel.HSSFRow;   
  10. import org.apache.poi.hssf.usermodel.HSSFSheet;   
  11. import org.apache.poi.hssf.usermodel.HSSFWorkbook;   
  12.   
  13. public class ReadXlsTest {   
  14.     // 设置cell编码解决中文高位字节截断   
  15.     private static short XLS_ENCODING = HSSFWorkbook.ENCODING_UTF_16;   
  16.   
  17.     // 定制日期格式   
  18.     private static String DATE_FORMAT = " m/d/yy "// "m/d/yy h:mm"   
  19.   
  20.     // 定制浮点数格式   
  21.     private static String NUMBER_FORMAT = " #,##0.00 ";   
  22.   
  23.     private String xlsFileName;   
  24.   
  25.     private HSSFWorkbook workbook;   
  26.   
  27.     private HSSFSheet sheet;   
  28.   
  29.     private HSSFRow row;   
  30.   
  31.     /**  
  32.      * 初始化Excel  
  33.      *   
  34.      * @param fileName  
  35.      *            导出文件名  
  36.      */  
  37.     public ReadXlsTest(String fileName) {   
  38.         this.xlsFileName = fileName;   
  39.         this.workbook = new HSSFWorkbook();   
  40.         this.sheet = workbook.createSheet();   
  41.     }   
  42.   
  43.     /**  
  44.      * 导出Excel文件  
  45.      *   
  46.      * @throws XLSException  
  47.      */  
  48.     public void exportXLS() throws Exception {   
  49.         try {   
  50.             FileOutputStream fOut = new FileOutputStream(xlsFileName);   
  51.             workbook.write(fOut);   
  52.             fOut.flush();   
  53.             fOut.close();   
  54.         } catch (FileNotFoundException e) {   
  55.             throw new Exception(" 生成导出Excel文件出错! ", e);   
  56.         } catch (IOException e) {   
  57.             throw new Exception(" 写入Excel文件出错! ", e);   
  58.         }   
  59.   
  60.     }   
  61.   
  62.     /**  
  63.      * 增加一行  
  64.      *   
  65.      * @param index  
  66.      *            行号  
  67.      */  
  68.     public void createRow(int index) {   
  69.         this.row = this.sheet.createRow(index);   
  70.     }   
  71.   
  72.     /**  
  73.      * 设置单元格  
  74.      *   
  75.      * @param index  
  76.      *            列号  
  77.      * @param value  
  78.      *            单元格填充值  
  79.      */  
  80.     public void setCell(int index, String value) {   
  81.         HSSFCell cell = this.row.createCell((short) index);   
  82.         cell.setCellType(HSSFCell.CELL_TYPE_STRING);   
  83.         cell.setEncoding(XLS_ENCODING);   
  84.         cell.setCellValue(value);   
  85.     }   
  86.   
  87.     /**  
  88.      * 设置单元格  
  89.      *   
  90.      * @param index  
  91.      *            列号  
  92.      * @param value  
  93.      *            单元格填充值  
  94.      */  
  95.     public void setCell(int index, Calendar value) {   
  96.         HSSFCell cell = this.row.createCell((short) index);   
  97.         cell.setEncoding(XLS_ENCODING);   
  98.         cell.setCellValue(value.getTime());   
  99.         HSSFCellStyle cellStyle = workbook.createCellStyle(); // 建立新的cell样式   
  100.         cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(DATE_FORMAT)); // 设置cell样式为定制的日期格式   
  101.         cell.setCellStyle(cellStyle); // 设置该cell日期的显示格式   
  102.     }   
  103.   
  104.     /**  
  105.      * 设置单元格  
  106.      *   
  107.      * @param index  
  108.      *            列号  
  109.      * @param value  
  110.      *            单元格填充值  
  111.      */  
  112.     public void setCell(int index, int value) {   
  113.         HSSFCell cell = this.row.createCell((short) index);   
  114.         cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);   
  115.         cell.setCellValue(value);   
  116.     }   
  117.   
  118.     /**  
  119.      * 设置单元格  
  120.      *   
  121.      * @param index  
  122.      *            列号  
  123.      * @param value  
  124.      *            单元格填充值  
  125.      */  
  126.     public void setCell(int index, double value) {   
  127.         HSSFCell cell = this.row.createCell((short) index);   
  128.         cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);   
  129.         cell.setCellValue(value);   
  130.         HSSFCellStyle cellStyle = workbook.createCellStyle(); // 建立新的cell样式   
  131.         HSSFDataFormat format = workbook.createDataFormat();   
  132.         cellStyle.setDataFormat(format.getFormat(NUMBER_FORMAT)); // 设置cell样式为定制的浮点数格式   
  133.         cell.setCellStyle(cellStyle); // 设置该cell浮点数的显示格式   
  134.     }   
  135.        
  136.      public   static   void  main(String[] args)   {   
  137.             System.out.println( " 开始导出Excel文件 " );   
  138.             ReadXlsTest e  =   new  ReadXlsTest("C://test.xls");   
  139.             e.createRow( 0 );   
  140.             e.setCell( 0 ,  " 编号 " );   
  141.             e.setCell( 1 ,  " 名称 " );   
  142.             e.setCell( 2 ,  " 日期 " );   
  143.             e.setCell( 3 ,  " 金额 " );   
  144.             e.createRow( 1 );   
  145.             e.setCell( 0 ,  1 );   
  146.             e.setCell( 1 ,  " 工商银行 " );   
  147.             e.setCell( 2 , Calendar.getInstance());   
  148.             e.setCell( 3 ,  111123.99 );   
  149.             e.createRow( 2 );   
  150.             e.setCell( 0 ,  2 );   
  151.             e.setCell( 1 ,  " 招商银行 " );   
  152.             e.setCell( 2 , Calendar.getInstance());   
  153.             e.setCell( 3 ,  222456.88 );   
  154.              try    {   
  155.                 e.exportXLS();   
  156.                 System.out.println( " 导出Excel文件[成功] " );   
  157.             }   catch  (Exception e1)   {   
  158.                 System.out.println( " 导出Excel文件[失败] " );   
  159.                 e1.printStackTrace();   
  160.             }    
  161.         }    
  162.   
  163. }   
  164.   
  165. Excel文档的模板可以从文件系统中引入,再将数据插入即可:   
  166.         HSSFWorkbook wb = null;   
  167.         InputStream is = null;   
  168.         try  
  169.         {   
  170.             is = getClass().getResourceAsStream("/com/util/abc.xls");   
  171.             POIFSFileSystem fs = new POIFSFileSystem(is);   
  172.             wb = new HSSFWorkbook(fs);   
  173.         }catch(Exception e){   
  174.            e.printStackTrace();   
  175.         }finally{   
  176.            try{   
  177.              if(null!=is)   
  178.                 is.close();   
  179.             }catch(Exception e){   
  180.            e.printStackTrace();   
  181.            }   
  182.         }  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值