• POI框架实现创建Excel表、添加数据、读取数据


    public class TestPOI2Excel {

    //创建2003版本Excel用此方法
    @Test
    public void testWrite03Excel() throws Exception {
    //创建工作簿
    HSSFWorkbook workbook = new HSSFWorkbook();
    //创建工作表
    HSSFSheet sheet = workbook.createSheet("hello World");//指定工作表名
    //创建行
    HSSFRow row = sheet.createRow(2);//创建第3行
    //创建单元格
    HSSFCell cell = row.createCell(2);
    cell.setCellValue("Hello World");//设置内容

    //输出到硬盘
    FileOutputStream out = new FileOutputStream("E:\测试.xls");
    //把excel输出到具体的地址
    workbook.write(out);
    workbook.close();
    out.close();

    }
    //读取2003版本的Excel表数据
    @Test
    public void testRead03Excel() throws Exception {
    FileInputStream in = new FileInputStream("E:\测试.xls");
    //读取工作簿
    HSSFWorkbook workbook = new HSSFWorkbook(in);
    //读取工作表
    HSSFSheet sheet = workbook.getSheet("hello World");//指定工作表名
    //创建行
    HSSFRow row = sheet.getRow(2);//读取第3行
    //读取单元格
    HSSFCell cell = row.getCell(2);
    System.out.println("di3行第3列单元格的内容为:"+cell.getStringCellValue());

    workbook.close();
    in.close();

    }
    //创建并写入2007版本及以上版本用此方法
    @Test
    public void testWrite07Excel() throws Exception {
    //创建工作簿
    XSSFWorkbook workbook = new XSSFWorkbook();
    //创建工作表
    XSSFSheet sheet = workbook.createSheet("hello World");//指定工作表名
    //创建行
    XSSFRow row = sheet.createRow(2);//创建第3行
    //创建单元格
    XSSFCell cell = row.createCell(2);
    cell.setCellValue("Hello World");//设置内容

    //输出到硬盘
    FileOutputStream out = new FileOutputStream("E:\测试.xlsx");
    //把excel输出到具体的地址
    workbook.write(out);
    workbook.close();
    out.close();

    }
    @Test
    public void testRead07Excel() throws Exception {
    FileInputStream in = new FileInputStream("E:\测试.xlsx");
    //读取工作簿
    XSSFWorkbook workbook = new XSSFWorkbook(in);
    //读取工作表
    XSSFSheet sheet = workbook.getSheet("hello World");//指定工作表名
    //创建行
    XSSFRow row = sheet.getRow(2);//读取第3行
    //读取单元格
    XSSFCell cell = row.getCell(2);
    System.out.println("di3行第3列单元格的内容为:"+cell.getStringCellValue());

    workbook.close();
    in.close();

    }
    //代码优化 判断Excel表的版本
    @Test
    public void testRead03And07Excel() throws Exception {
    String fileName="E:\测试.xls";
    FileInputStream in = new FileInputStream(fileName);
    if(fileName.matches("^.+\.(?i)((xls)|(xlsx))$")){//判断是否为Excel文档
    boolean is03Excel=fileName.matches("^.+\.(?i)((xls)|(xlsx))$");

    //读取工作簿

    Workbook workbook = is03Excel ? new HSSFWorkbook(in) : new XSSFWorkbook(in);
    //读取工作表
    Sheet sheet = workbook.getSheet("hello World");//指定工作表名
    //创建行
    Row row = sheet.getRow(2);//读取第3行
    //读取单元格
    Cell cell = row.getCell(2);
    System.out.println("di3行第3列单元格的内容为:"+cell.getStringCellValue());

    workbook.close();
    in.close();
    }
    }
    //Excel表格的样式属性
    @Test
    public void testExcelStyle()throws Exception{

    //创建工作簿
    HSSFWorkbook workbook=new HSSFWorkbook();
    //合并单元格 合并第三行的第三列到第五列
    CellRangeAddress cellRangeAddress = new CellRangeAddress(2, 2, 2, 4);
    //1.2创建单元格式
    HSSFCellStyle cellStyle = workbook.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中
    cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
    //1.3创建字体
    HSSFFont font = workbook.createFont();
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗字体
    //font.setFontHeight((short)320);//设置字体大小,设置数/20
    font.setFontHeightInPoints((short) 17);
    //加载字体
    cellStyle.setFont(font);
    //单元格背景
    //设置背景填充模式
    cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    //设置填充背景色
    cellStyle.setFillBackgroundColor(HSSFColor.YELLOW.index);
    //设置填充前景色
    cellStyle.setFillForegroundColor(HSSFColor.RED.index);
    HSSFSheet sheet = workbook.createSheet("hello World");

    sheet.addMergedRegion(cellRangeAddress);
    HSSFRow row = sheet.createRow(2);
    HSSFCell cell = row.createCell(2);
    //加载样式
    cell.setCellStyle(cellStyle);
    cell.setCellValue("helloWorld0");

    //输出到硬盘
    FileOutputStream out = new FileOutputStream("E:\测试.xls");
    //把excel输出到具体的地址
    workbook.write(out);
    workbook.close();
    out.close();

    }
    }
  • 相关阅读:
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    1236:区间合并
  • 原文地址:https://www.cnblogs.com/smallbrokenchildwen/p/6695400.html
Copyright © 2020-2023  润新知