码迷,mamicode.com
首页 > 其他好文 > 详细

POI操作Excel

时间:2019-08-04 01:53:53      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:eof   close   ext   print   names   tin   获取   字符串   lse   

1、第一个demo:创建工作簿,创建sheet页,创建单元格

  导包:poi-3.9-20121203.jar

public static void main(String[] args) throws Exception {
    Workbook wb = new HSSFWorkbook(); // 定义一个新的工作簿
    Sheet sheet = wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页
    Row row = sheet.createRow(0); // 创建一个行
    Cell cell = row.createCell(0); // 创建一个单元格 第1列
    cell.setCellValue(1); // 给单元格设置值

    row.createCell(1).setCellValue(1.2); // 创建一个单元格 第2列 值是1.2

    row.createCell(2).setCellValue("这是一个字符串类型"); // 创建一个单元格 第3列 值为一个字符串

    row.createCell(3).setCellValue(false); // 创建一个单元格 第4列 值为布尔类型

    FileOutputStream fileOut = new FileOutputStream("d:\\Poi生成的excel.xls");
    wb.write(fileOut);
    fileOut.close();
}

 

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

public static void main(String[] args) throws Exception {
    Workbook wb = new HSSFWorkbook(); // 定义一个新的工作簿
    Sheet sheet = wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页
    Row row = sheet.createRow(0); // 创建一个行
    Cell cell = row.createCell(0); // 创建一个单元格 第1列
    cell.setCellValue(new Date()); // 给单元格设置值

    // 单元格样式类
    CellStyle cellStyle = wb.createCellStyle();
    CreationHelper createHelper = wb.getCreationHelper();
    cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("yyy-mm-dd hh:mm:ss"));

    cell = row.createCell(1); // 第二列
    cell.setCellValue(new Date());
    cell.setCellStyle(cellStyle);

    cell = row.createCell(2); // 第三列
    cell.setCellValue(Calendar.getInstance());
    cell.setCellStyle(cellStyle);

    FileOutputStream fileOut = new FileOutputStream("d:\\工作簿.xls");
    wb.write(fileOut);
    fileOut.close();
}

 

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

public static void main(String[] args) throws Exception {
    InputStream is = new FileInputStream("d:\\工作簿1.xls");
    POIFSFileSystem fs = new POIFSFileSystem(is);
    HSSFWorkbook wb = new HSSFWorkbook(fs);
    HSSFSheet hssfSheet = wb.getSheetAt(0); // 获取第一个Sheet页
    if (hssfSheet == null) return;
        
    // 遍历行Row
    for (int rowNum = 0; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
        HSSFRow hssfRow = hssfSheet.getRow(rowNum);
        if (hssfRow == null) {
            continue;
        }
        // 遍历列Cell
        for (int cellNum = 0; cellNum <= hssfRow.getLastCellNum(); cellNum++) {
            HSSFCell hssfCell = hssfRow.getCell(cellNum);
            if (hssfCell == null) {
                continue;
            }
            System.out.print(" " + getValue(hssfCell));
        }
        System.out.println();
    }
}

private static String getValue(HSSFCell hssfCell) {
    if (hssfCell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {
        return String.valueOf(hssfCell.getBooleanCellValue());
    } else if (hssfCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
        return String.valueOf(hssfCell.getNumericCellValue());
    } else {
        return String.valueOf(hssfCell.getStringCellValue());
    }
}

 

4、文本提取

public static void main(String[] args) throws Exception {
    InputStream is = new FileInputStream("d:\\工作簿1.xls");
    POIFSFileSystem fs = new POIFSFileSystem(is);
    HSSFWorkbook wb = new HSSFWorkbook(fs);

    ExcelExtractor excelExtractor = new ExcelExtractor(wb);
    // false:不打印Sheet页的名字
    excelExtractor.setIncludeSheetNames(true);
    System.out.println(excelExtractor.getText());
}

 

5、

 

POI操作Excel

标签:eof   close   ext   print   names   tin   获取   字符串   lse   

原文地址:https://www.cnblogs.com/xy-ouyang/p/11296857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!