一些关于POI的代码【报表类相关】

这篇博客介绍了如何使用Apache POI库在Java中操作Excel。内容包括创建新的工作簿和sheet,设置单元格内容、时间格式、字体样式,以及遍历读取工作簿数据。此外,还展示了如何提取文本和设置单元格数据格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.定义一个新的工作簿
Workbook wb = new HSSFWorkBook(); //定义一个新的工作簿
FileOutputStream fileout = new FileOutputStream("C:\\用poi搞出来的工作簿.xls");
wb.write(fileout); //输出
fileout.close(); //关闭
2.创建一个新的sheet页
wb.createSheet("第一个sheet页");
wb.createSheet("第二个sheet页");
3.创建单元格
Sheet sheet = wb.createSheet("第一个sheet页");
Row row = sheet.createRow(0);
row.setHeightInPoints(30); //设置行高
Cell cell = row.createCell(0);
cell.setCellValue(1); //添加值
row.createCell(1).setCellValue(2); 
row.createCell(2).setCellValue("string"); 
row.createCell(3).setCellValue(false); 
4.创建一个时间格式的单元格
CreationHelper createHelper = wb.getCreationHelper();
CellStyle cellstyle = wb.createCellStyle(); //单元格样式
cellStyle.setDateFormat(createHelper.createDataFormat().getFormat("yyyy-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);
5.遍历工作簿的行和列并获取单元格的内容
public static void main(String[] args) throws Exception {

    InputStream is = new FileInputStream("文件路径");
    POIFSFileSystem fs= new POIFSFileSystem(is);
    HSSFWorkbook wb = new HSSFWorkbook(fs);
    HSSFSheet hssfSheet = wb.getSheetAt(0);
    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());
    }
}
6.文本提取
ExcelExtractor excelExtractor = new ExcelExtractor(wb);
excelExtractor.setIncludeSheetNames(false); //不需要sheet的名字
System.out.println(excelExtractor.getText());
7.单元格
换行

在这里插入图片描述

8.字体处理
Font font = wb.createFont();
font.setFontHeightInPoints((short)24);
font.setFontName("Courier New");
font.setItalic(true); //斜体
font.setStrikeout(true); //删除线

CellStyle cellStyle = wb.createCellStyle();
cellStyle.setFont(font);
9.读取和重写工作簿

在这里插入图片描述

10.设置单元格数据格式
DataFormat format = wb.createDataFormat;
style = wb.createCellStyle();
style.setDataFormat(format.getFomat("0.0"));
cell.setCellStyle(style);
11.实现数据的批量导出
OutputStream fos;
fos = new FileOutputStream(newFilePath);
wb.write(fos);
fos.flush();
fos.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值