POI操作Excel

Posted xy-ouyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POI操作Excel相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

java使用POI操作excel文件,实现批量导出,和导入

java使用POI操作excel文件,实现批量导出,和导入

POI对Excel进行读取操作,工具类,便于操作数据

POI操作Excel导入和导出

java操作poi的excel表格的线条怎么变为黑色

POI-----POI操作Excel-4字体