zoukankan      html  css  js  c++  java
  • java POI创建Excel示例(xslx和xsl区别 )

    Java用来处理office类库有很多,其中POI就是比较出名的一个,它是apache的类库,现在版本到了3.10,也就是2014年2月8号这个版本。
    在处理PPT,Excel和Word前,需要导入以前几个jar包:
    dom4j-1.7-20060614.jar
    log4j-1.2.13.jar
    poi-3.7-20101029.jar
    poi-ooxml-3.7-20101029.jar
    poi-ooxml-schemas-3.7-20101029.jar
    本文主要简介下java poi处理Excel,
    2003版本的.xls一张sheet表允许存2^16 = 次方行数据,2^8 = 256列数据,
    2007版本以上的.xlsx一张sheet表允许存的数据就更大了,是百万级别的。行: 2^20 = 1048576; 列:2^14 = 16384 行。
    以下代码简单操作了excel文件。 
     1 package com.caoyuanzhanlang.excelhandle;
     2 
     3 import java.io.File;
     4 import java.io.FileOutputStream;
     5 
     6 import org.apache.poi.hssf.util.HSSFColor;
     7 import org.apache.poi.ss.usermodel.Cell;
     8 import org.apache.poi.ss.usermodel.CellStyle;
     9 import org.apache.poi.ss.usermodel.Font;
    10 import org.apache.poi.ss.usermodel.Row;
    11 import org.apache.poi.ss.usermodel.Sheet;
    12 import org.apache.poi.ss.usermodel.Workbook;
    13 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    14 
    15 public class NewExcel {
    16     
    17     private String excelPath = "data.xlsx";
    18 
    19     public static void main(String[] args) throws Exception{
    20         NewExcel excel = new NewExcel();
    21         if(excel.createExcelFile()) {
    22             System.out.println("data.xlsx is created successfully.");
    23         }
    24     }
    25     public boolean createExcelFile() {
    26         boolean isCreateSuccess = false;
    27         Workbook workbook = null;
    28         try {
    29             // XSSFWork used for .xslx (>= 2007), HSSWorkbook for 03 .xsl
    30             workbook = new XSSFWorkbook();//HSSFWorkbook();//WorkbookFactory.create(inputStream);
    31         }catch(Exception e) {
    32             System.out.println("It cause Error on CREATING excel workbook: ");
    33             e.printStackTrace();
    34         }
    35         if(workbook != null) {
    36             Sheet sheet = workbook.createSheet("testdata");
    37             Row row0 = sheet.createRow(0);
    38             for(int i = 0; i < 11; i++) {
    39                 Cell cell_1 = row0.createCell(i, Cell.CELL_TYPE_STRING);
    40                 CellStyle style = getStyle(workbook);
    41                 cell_1.setCellStyle(style);
    42                 cell_1.setCellValue("HELLO" + i + "Column");
    43                 sheet.autoSizeColumn(i);
    44             }
    45             for (int rowNum = 1; rowNum < 200; rowNum++) {
    46                 Row row = sheet.createRow(rowNum);
    47                 for(int i = 0; i < 11; i++) {
    48                     Cell cell = row.createCell(i, Cell.CELL_TYPE_STRING);
    49                     cell.setCellValue("cell" + String.valueOf(rowNum+1) + String.valueOf(i+1));
    50                 }
    51             }
    52             try {
    53                 FileOutputStream outputStream = new FileOutputStream(excelPath);
    54                 workbook.write(outputStream);
    55                 outputStream.flush();
    56                 outputStream.close();
    57                 isCreateSuccess = true;
    58             } catch (Exception e) {
    59                 System.out.println("It cause Error on WRITTING excel workbook: ");
    60                 e.printStackTrace();
    61             }
    62         }
    63         File sss = new File(excelPath);
    64         System.out.println(sss.getAbsolutePath());
    65         return isCreateSuccess;
    66     }
    67     private CellStyle getStyle(Workbook workbook){
    68         CellStyle style = workbook.createCellStyle();
    69         style.setAlignment(CellStyle.ALIGN_CENTER); 
    70         style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
    71         // 设置单元格字体
    72         Font headerFont = workbook.createFont(); // 字体
    73         headerFont.setFontHeightInPoints((short)14);
    74         headerFont.setColor(HSSFColor.RED.index);
    75         headerFont.setFontName("宋体");
    76         style.setFont(headerFont);
    77         style.setWrapText(true);
    78 
    79         // 设置单元格边框及颜色
    80         style.setBorderBottom((short)1);
    81         style.setBorderLeft((short)1);
    82         style.setBorderRight((short)1);
    83         style.setBorderTop((short)1);
    84         style.setWrapText(true);
    85         return style;
    86     }
    87     public String getExcelPath() {
    88         return this.excelPath;
    89     }
    90     
    91     public void setExcelPath(String excelPath) {
    92         this.excelPath = excelPath;
    93     }
    94 }
  • 相关阅读:
    windows测试模式
    架构设计之Spring-Session的分布式集群会话管理
    WPF集合
    java Socket Udp
    java Socket 获取本地主机ip
    快速排序
    java 正则举例
    JNI 在命令行窗口输入字符,不显所输入字符,显指定的掩饰符
    java 在控制台上输入密码时,密码不显示在控制台上
    java 获取对象大小
  • 原文地址:https://www.cnblogs.com/caoyuanzhanlang/p/3591904.html
Copyright © 2011-2022 走看看