poi(4)---分解操作

第一节、创建工作薄

package com.cn.util;

 

import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Workbook;

/**

 * 1.创建工作薄

 * */

public class CreateExcel_01 {

    public static void main(String[] args) throws Exception {

        //1.定义一个新的工作薄

        Workbook wb=new HSSFWorkbook();

        //2.获取输出路径

        FileOutputStream os=new FileOutputStream("d:\\user.xls");

        //3.将这个工作簿安装这个路径输出

        wb.write(os);

        //4.关闭输出流

        os.close();

        System.out.println("结束");

    }

}

 

第二节、创建sheet页

package com.cn.util;

 

import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Workbook;

/**

 * 创建sheet

 * */

public class CreateSheet_02 {

    public static void main(String[] args) throws Exception {

        Workbook wb=new HSSFWorkbook();

        //创建第一个sheet

        wb.createSheet("sheet1");

        //创建第二个sheet

        wb.createSheet("sheet2");

        //获取输出路径

        FileOutputStream os=new FileOutputStream("d:\\user.xls");

        //将这个工作簿按照这个路径输出

        wb.write(os);

        //关闭输出

        os.close();

        System.out.println("结束");

    }

}

 

第三节、创建单元格

package com.cn.util;

 

import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

 

/**

 * 3、创建单元格

 * */

public class CreateSpace_03 {

    public static void main(String[] args) throws Exception {

        //1.创建工作薄

        Workbook wb=new HSSFWorkbook();

        //2.创建sheet

        Sheet sheet=wb.createSheet("sheet1");

        //3.创建第一行,第一行的索引为0

        Row row=sheet.createRow(0);

        //4.创建第一行的第一列

        Cell cell1=row.createCell(0);

        //5.给第一行第一列设置值

        cell1.setCellValue("编号");

        //6.给第一行第二列设置值

        row.createCell(1).setCellValue(false);

        //7.给第一行第三列设置值

        row.createCell(2).setCellValue("用户名");

        //8.创建第二行

        row=sheet.createRow(1);

        //9.给第二行第一列设置值

        row.createCell(1).setCellValue(1);

       

        //1O.通过文件输出流获得输出路径

        FileOutputStream os=new FileOutputStream("D:\\user.xls");

        //11、将工作簿按照这个路径输出

        wb.write(os);

        //12、关闭输出

        os.close();

        System.out.println("结束");

    }

}

 

第四节、设置时间单元格

package com.cn.util;

 

import java.io.FileOutputStream;

import java.util.Date;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

 

/**

 * 处理时间格式单元格

 * */

public class SetTimeFormat_04 {

   public static void main(String[] args) throws Exception {

      //1.创建工作簿

      Workbook wb=new HSSFWorkbook();

      //2.创建sheet

      Sheet sheet=wb.createSheet("sheet1");

      //3.创建行

      Row row=sheet.createRow(0);

      //4.给第一行第一列设置日期时间

      row.createCell(0).setCellValue(new Date());

     

      //5.获得输出路径

      FileOutputStream os=new FileOutputStream("D:\\user.xls");

      //将工作簿按照这个路径写入

      wb.write(os);

      System.out.println("结束");

   }

}

此时输出的时间格式如下:

修改如下:

package com.cn.util;

 

import java.io.FileOutputStream;

import java.util.Calendar;

import java.util.Date;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.CellStyle;

import org.apache.poi.ss.usermodel.CreationHelper;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

 

/**

 * 处理时间格式单元格

 * */

public class SetTimeFormat_04 {

   public static void main(String[] args) throws Exception {

      //1.创建工作簿

      Workbook wb=new HSSFWorkbook();

      //2.创建sheet

      Sheet sheet=wb.createSheet("sheet1");

      //3.创建行

      Row row=sheet.createRow(0);

      //4.给第一行第一列设置日期时间

      /**

       * 针对时间格式问题,作出如下格式化

       * */

      CreationHelper ch=wb.getCreationHelper();

      //创建单元格样式

      CellStyle style=wb.createCellStyle();

      //设置时间格式

      style.setDataFormat(ch.createDataFormat().getFormat("yyyy-mm-dd hh:MM:ss"));

      Cell cell=row.createCell(0);

      cell.setCellValue(new Date());

      cell.setCellStyle(style);

      //row.createCell(0).setCellValue(new Date());

     

      //方式2:还可以通过如下方式获取时间日历的方式

      cell=row.createCell(2);

      cell.setCellValue(Calendar.getInstance());

      cell.setCellStyle(style);

     

      //5.获得输出路径

      FileOutputStream os=new FileOutputStream("D:\\user.xls");

      //将工作簿按照这个路径写入

      wb.write(os);

      System.out.println("结束");

   }

}

结果如下:

注意:日期的单元格过短会出现######问题,此时应设置单元格为合适大小。

 

第五节、设置不同格式的单元格

package com.cn.util;

 

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.util.Date;

 

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

 

/**

 * 设置不同格式的单元格

 * */

public class SetDiffSpace_05 {

    public static void main(String[] args) throws Exception {

        //1.创建工作簿

        Workbook wb=new HSSFWorkbook();

        //2、创建sheet

        Sheet sheet=wb.createSheet();

        //3.创建行

        Row row=sheet.createRow(0);

        //4.为第一行第1列设置日期格式

        row.createCell(0).setCellValue(new Date());

        //5.为第一行第2列设置字符串格式

        row.createCell(1).setCellValue("这是一个字符串格式");

        //6.为第一行第3列设置boolean类型

        row.createCell(2).setCellValue(false);

        //7.为第一行第4列设置数字类型

        row.createCell(3).setCellValue(HSSFCell.CELL_TYPE_NUMERIC);

        //8.创建输出流

        FileOutputStream os=new FileOutputStream("D:\\user.xls");

        //9.写入到wb

        wb.write(os);

        //关闭

        os.close();

        System.out.println("结束");

    }

}

第六节、遍历工作薄中行和列中的值

package com.cn.util;

 

import java.io.FileInputStream;

import java.io.InputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

 

/**

 * 遍历工作簿的行和列的取值

 * */

public class ReadRowCellValue_06 {

    public static void main(String[] args) throws Exception {

        //输入流得到文件路径

        InputStream  is=new FileInputStream("D:\\user.xls");

        POIFSFileSystem fs=new POIFSFileSystem(is);

        //创建工作薄

        HSSFWorkbook wb=new HSSFWorkbook(fs);

        //获得第一个sheet

        HSSFSheet sheet=wb.getSheetAt(0);

        if(sheet==null){

            return;

        }

        //先要遍历行

        for(int rowNum=0;rowNum<=sheet.getLastRowNum();rowNum++){

            HSSFRow row=sheet.getRow(rowNum);

            if(row==null){

                continue; //如果有空行则跳过,然后继续下一行

            }

            //遍历列

            for(int cellNum=0;cellNum<=row.getLastCellNum();cellNum++){

                HSSFCell cell=row.getCell(cellNum);

                if(cell==null){

                    continue;

                }

                System.out.println("--"+getValue(cell));

            }

        }

       

       

    }

    private static String getValue(HSSFCell cell){

        if(cell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){

            return String.valueOf(cell.getBooleanCellValue());

        }else if(cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){

            return String.valueOf(cell.getNumericCellValue());

        }else{

            return String.valueOf(cell.getStringCellValue());

        }

       

       

    }

}

 

第七节、excel文本取值

package com.cn.util;

import java.io.FileInputStream;

import java.io.InputStream;

import org.apache.poi.hssf.extractor.ExcelExtractor;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

 

/**

 * 遍历excel文本,取值

 * */

public class ReadText_07 {

    public static void main(String[] args) throws Exception {

        //1.输入流

        InputStream is=new FileInputStream("d:\\user.xls");

        //2.POI文件

        POIFSFileSystem fs=new POIFSFileSystem(is);

        //3.创建工作簿

        HSSFWorkbook wb=new HSSFWorkbook(fs);

        //4.

        ExcelExtractor ee=new ExcelExtractor(wb);

        ee.setIncludeSheetNames(false); //设置不需要sheet页的名字

        System.out.println(ee.getText());

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值