zoukankan      html  css  js  c++  java
  • (二)JAVA使用POI操作excel

    1,创建一个时间格式的单元格

    Demo4.java

     1 package com.wishwzp.poi;
     2 
     3 import java.io.FileOutputStream;
     4 import java.util.Calendar;
     5 import java.util.Date;
     6 
     7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
     8 import org.apache.poi.ss.usermodel.Cell;
     9 import org.apache.poi.ss.usermodel.CellStyle;
    10 import org.apache.poi.ss.usermodel.CreationHelper;
    11 import org.apache.poi.ss.usermodel.Row;
    12 import org.apache.poi.ss.usermodel.Sheet;
    13 import org.apache.poi.ss.usermodel.Workbook;
    14 
    15 public class Demo4 {
    16 
    17     public static void main(String[] args) throws Exception{
    18         Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
    19         Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
    20         
    21         Row row=sheet.createRow(0); // 创建一个行
    22         
    23         Cell cell=row.createCell(0); // 创建一个单元格  第1列
    24         cell.setCellValue(new Date());  // 给单元格设置值
    25         
    26         CreationHelper createHelper=wb.getCreationHelper();
    27         CellStyle cellStyle=wb.createCellStyle(); //单元格样式类
    28         cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("yyy-mm-dd hh:mm:ss"));
    29         cell=row.createCell(1); // 第二列
    30         cell.setCellValue(new Date());
    31         cell.setCellStyle(cellStyle);
    32         
    33         cell=row.createCell(2);  // 第三列
    34         cell.setCellValue(Calendar.getInstance());
    35         cell.setCellStyle(cellStyle);
    36         
    37         FileOutputStream fileOut=new FileOutputStream("d:\工作簿.xls");
    38         wb.write(fileOut);
    39         fileOut.close();
    40     }
    41 }

     

     


    2,处理不同内容格式的单元格

     Demo5.java

     1 package com.wishwzp.poi;
     2 
     3 import java.io.FileOutputStream;
     4 import java.util.Calendar;
     5 import java.util.Date;
     6 
     7 import org.apache.poi.hssf.usermodel.HSSFCell;
     8 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
     9 import org.apache.poi.ss.usermodel.Cell;
    10 import org.apache.poi.ss.usermodel.CellStyle;
    11 import org.apache.poi.ss.usermodel.CreationHelper;
    12 import org.apache.poi.ss.usermodel.Row;
    13 import org.apache.poi.ss.usermodel.Sheet;
    14 import org.apache.poi.ss.usermodel.Workbook;
    15 
    16 public class Demo5 {
    17 
    18     public static void main(String[] args) throws Exception{
    19         Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
    20         Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
    21         
    22         Row row=sheet.createRow(0); // 创建一个行
    23         
    24         Cell cell=row.createCell(0); // 创建一个单元格  第1列
    25         cell.setCellValue(new Date());  // 给单元格设置值
    26         
    27         row.createCell(1).setCellValue(1);
    28         row.createCell(2).setCellValue("一个字符串");
    29         row.createCell(3).setCellValue(true);
    30         row.createCell(4).setCellValue(HSSFCell.CELL_TYPE_NUMERIC);
    31         row.createCell(5).setCellValue(false);
    32         
    33         FileOutputStream fileOut=new FileOutputStream("d:\工作簿.xls");
    34         wb.write(fileOut);
    35         fileOut.close();
    36     }
    37 }

     

    3,遍历工作簿的行和列并获取单格内容

    我们遍历这个excel。  

    Demo6.java

     1 package com.wishwzp.poi;
     2 
     3 import java.io.FileInputStream;
     4 import java.io.InputStream;
     5 
     6 import org.apache.poi.hssf.usermodel.HSSFCell;
     7 import org.apache.poi.hssf.usermodel.HSSFRow;
     8 import org.apache.poi.hssf.usermodel.HSSFSheet;
     9 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    10 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    11 
    12 public class Demo6 {
    13 
    14     public static void main(String[] args) throws Exception{
    15         InputStream is=new FileInputStream("d:\个人名单.xls");
    16         POIFSFileSystem fs=new POIFSFileSystem(is);
    17         HSSFWorkbook wb=new HSSFWorkbook(fs);
    18         
    19         HSSFSheet hssfSheet=wb.getSheetAt(0); // 获取第一个Sheet页
    20         if(hssfSheet==null){
    21             return;
    22         }
    23         // 遍历行Row
    24         for(int rowNum=0;rowNum<=hssfSheet.getLastRowNum();rowNum++){
    25             HSSFRow hssfRow=hssfSheet.getRow(rowNum);
    26             if(hssfRow==null){
    27                 continue;
    28             }
    29             // 遍历列Cell
    30             for(int cellNum=0;cellNum<=hssfRow.getLastCellNum();cellNum++){
    31                 HSSFCell hssfCell=hssfRow.getCell(cellNum);
    32                 if(hssfCell==null){
    33                     continue;
    34                 }
    35                 System.out.print(" "+getValue(hssfCell));
    36             }
    37             System.out.println();
    38         }
    39     }
    40     
    41     private static String getValue(HSSFCell hssfCell){
    42         if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){
    43             return String.valueOf(hssfCell.getBooleanCellValue());
    44         }else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
    45             return String.valueOf(hssfCell.getNumericCellValue());
    46         }else{
    47             return String.valueOf(hssfCell.getStringCellValue());
    48         }
    49     }
    50 }

    控制台输出:

    这里面是遍历 ,是表单形式。。。

    4,文本提取

    我们文本提取上面个人名单.xls表格。。。

      Demo7.java

     1 package com.wishwzp.poi;
     2 
     3 import java.io.FileInputStream;
     4 import java.io.InputStream;
     5 
     6 import org.apache.poi.hssf.extractor.ExcelExtractor;
     7 import org.apache.poi.hssf.usermodel.HSSFCell;
     8 import org.apache.poi.hssf.usermodel.HSSFRow;
     9 import org.apache.poi.hssf.usermodel.HSSFSheet;
    10 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    11 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    12 
    13 public class Demo7 {
    14 
    15     public static void main(String[] args) throws Exception{
    16         InputStream is=new FileInputStream("d:\个人名单.xls");
    17         POIFSFileSystem fs=new POIFSFileSystem(is);
    18         HSSFWorkbook wb=new HSSFWorkbook(fs);
    19         
    20         ExcelExtractor excelExtractor=new ExcelExtractor(wb);
    21         excelExtractor.setIncludeSheetNames(false);// 我们不需要Sheet页的名字
    22         System.out.println(excelExtractor.getText());
    23     }
    24     
    25 
    26 }

    控制台显示:

    这里面是文本信息。。。

    excelExtractor.setIncludeSheetNames(false);这个如果为true的话就会显示Sheet页了

    excelExtractor.setIncludeSheetNames(true):

    控制台输出:

  • 相关阅读:
    POJ-3131-Cubic Eight-Puzzle(双向BFS+哈希)
    Android WebView与JavaScript交互操作(Demo)
    程序猿Web面试之jQuery
    Java数据类型(基本数据类型和引用数据类型)
    Swift学习——A Swift Tour 枚举和结构体
    大龙的学习笔记之“虚方法,抽象方法,重写,抽象类,接口”
    thinkphp curd的事务回滚 一看就会
    图书源代码下载: Modern Differential Geometry of CURVES and SURFACES with Mathematica
    UOJ#422. 【集训队作业2018】小Z的礼物
    删除所选项(附加搜索部分的jquery)
  • 原文地址:https://www.cnblogs.com/wishwzp/p/5494038.html
Copyright © 2011-2022 走看看