• java操作Excel之POI(1)


    一、新建工作簿、sheet、单元格

     1 public static void main(String[] args) throws Exception {
     2         Workbook wb = new HSSFWorkbook();    //定义一个新的工作簿
     3         Sheet sheet = wb.createSheet("第一个sheet页");
     4         wb.createSheet("第二个sheet页");
     5         Row row = sheet.createRow(0);                //创建第0行
     6         Cell cell = row.createCell(0);                //创建一个单元格,第0行,第1列
     7         cell.setCellValue(1);                         //给单元格设置值
     8         row.createCell(1).setCellValue(1.2);        //第2列
     9         row.createCell(2).setCellValue("这是一个字符串");
    10         row.createCell(3).setCellValue(false);
    11         FileOutputStream fileOut = new FileOutputStream("E:\用POI搞出来的工作簿3.xls");
    12         wb.write(fileOut);
    13         fileOut.close();
    14     }

    效果图:

    二、创建一个时间格式的单元格:

     1 public static void main(String[] args) throws Exception {
     2         Workbook wb = new HSSFWorkbook();    //定义一个新的工作簿
     3         Sheet sheet = wb.createSheet("第一个sheet页");
     4         wb.createSheet("第二个sheet页");
     5         Row row = sheet.createRow(0);                //创建第0行
     6         Cell cell = row.createCell(0);                //创建一个单元格,第0行,第1列
     7         cell.setCellValue(new Date());
     8         
     9         CreationHelper creationHelper = wb.getCreationHelper();    
    10         CellStyle cellStyle = wb.createCellStyle();
    11         //设置单元格时间格式
    12         cellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("yyyy-mm-dd hh:mm:ss"));
    13         cell = row.createCell(1);                    //第2列
    14         cell.setCellValue(new Date());
    15         cell.setCellStyle(cellStyle);
    16         
    17         cell = row.createCell(2);                    //第3列
    18         cell.setCellValue(Calendar.getInstance());
    19         cell.setCellStyle(cellStyle);
    20         
    21         FileOutputStream fileOut = new FileOutputStream("E:\工作簿.xls");
    22         wb.write(fileOut);
    23         fileOut.close();
    24     }

    效果:

    三、创建不同格式的单元格:

    /**
         * 创建不同格式的单元格
         */
        public static void main(String[] args) throws Exception {
            Workbook wb = new HSSFWorkbook();    //定义一个新的工作簿
            Sheet sheet = wb.createSheet("第一个sheet页");
            Row row = sheet.createRow(0);        //第一行
            row.createCell(0).setCellValue(new Date());    //第1列
            row.createCell(1).setCellValue(1);
            row.createCell(2).setCellValue("一个字符串");
            row.createCell(3).setCellValue(true);
            row.createCell(4).setCellValue(HSSFCell.CELL_TYPE_NUMERIC);
            row.createCell(5).setCellValue(false);
            
            FileOutputStream fileOut = new FileOutputStream("E:\工作簿2.xls");
            wb.write(fileOut);
            fileOut.close();
        }

    三、遍历一个工作簿:

     1 /**
     2      * 遍历一个工作簿
     3      */
     4     public static void main(String[] args) throws Exception {
     5         InputStream is = new FileInputStream("E:\二货.xls");
     6         POIFSFileSystem ps = new POIFSFileSystem(is);
     7         HSSFWorkbook wb = new HSSFWorkbook(ps);
     8         HSSFSheet hssfSheet = wb.getSheetAt(0);  //获取第一个sheet页
     9         if(hssfSheet == null){
    10             return;
    11         }
    12         //遍历row
    13         for(int rowNum=0; rowNum<=hssfSheet.getLastRowNum(); rowNum++){
    14             HSSFRow hssfRow = hssfSheet.getRow(rowNum);
    15             if(hssfRow == null){
    16                 continue;
    17             }
    18             //遍历行
    19             for(int cellNum=0; cellNum<=hssfRow.getLastCellNum(); cellNum++){
    20                 HSSFCell hssfCell = hssfRow.getCell(cellNum);
    21                 if(hssfCell == null){
    22                     continue;
    23                 }
    24                 System.out.print(getValue(hssfCell) + "  ");
    25             }
    26             
    27             System.out.println();
    28         }
    29         
    30         is.close();
    31     }
    32     
    33     private static String getValue(HSSFCell hssfCell){
    34         if(hssfCell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN){
    35             return String.valueOf(hssfCell.getBooleanCellValue());
    36         }else if(hssfCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){
    37             return String.valueOf(hssfCell.getNumericCellValue());
    38         }else{
    39             return String.valueOf(hssfCell.getStringCellValue());
    40         }
    41     }

    四、提取文本:

     1 /**
     2      * 提取文本
     3      */
     4     public static void main(String[] args) throws Exception {
     5         InputStream is = new FileInputStream("E:\二货.xls");
     6         POIFSFileSystem ps = new POIFSFileSystem(is);
     7         HSSFWorkbook wb = new HSSFWorkbook(ps);
     8         
     9         ExcelExtractor excelExtractor = new ExcelExtractor(wb);
    10         excelExtractor.setIncludeSheetNames(false); //不需要sheet页的名字
    11         System.out.println(excelExtractor.getText());
    12     }

  • 相关阅读:
    Github挂载大文件解决方案
    UWP 更强大的文件获取能力
    UWP 打开系统设置面板
    Windows 10
    Flutter
    Android笔记(三):View一些值得注意的地方
    Android笔记(二):savedIndstanceState 和 Bundle
    Android笔记(一):this 的表示范围和 Context
    用atom写LaTeX文档
    博客园LaTeX数学公式功能及效果展示
  • 原文地址:https://www.cnblogs.com/tenWood/p/6421774.html
Copyright © 2020-2023  润新知