POI操作excel示例

POI自己有些东西不是很熟悉。记录一下。

POI读取

cpp 复制代码
  public static void main(String[] args) throws Exception {
        // 读取文件
        String filePath = "D:\\12.xlsx"; // 替换为你的 Excel 文件路径

        try (FileInputStream fis = new FileInputStream(filePath);
             Workbook workbook = WorkbookFactory.create(fis)) {

            // 遍历所有工作表
            for (int sheetIndex = 0; sheetIndex < workbook.getNumberOfSheets(); sheetIndex++) {
                Sheet sheet = workbook.getSheetAt(sheetIndex);
                System.out.println("工作表名称: " + sheet.getSheetName());
                // 遍历所有行
                for (Row row : sheet) {
                    for (Cell cell : row) {
                        String cellValue = getCellValue(cell);
                        System.out.println(cellValue);
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static String getCellValue(Cell cell)  {
        switch (cell.getCellType()) {
            case STRING:
                return cell.getStringCellValue().trim();
            case NUMERIC:
                if (DateUtil.isCellDateFormatted(cell)) {
                    return DateFormatUtils.format(cell.getDateCellValue(), "yyyy-MM-dd HH:mm:ss");
                } else {
                    return NumberToTextConverter.toText(cell.getNumericCellValue()).trim();
                }
            case BOOLEAN:
                return String.valueOf(cell.getBooleanCellValue());
            case FORMULA:
                return cell.getCellFormula();
            case ERROR:
                return ErrorEval.getText(cell.getErrorCellValue());
            default:
                return "";
        }
    }
}

POI写入

cpp 复制代码
  public static void main(String[] args) throws Exception {
        // 1. 创建一个新的工作簿(Excel文件)
        Workbook workbook = new XSSFWorkbook();

        // 2. 创建一个工作表(Sheet)
        Sheet sheet = workbook.createSheet("学生信息表");

        // 3. 模拟数据
        String[][] data = {
                {"姓名", "年龄", "成绩"},
                {"张三", "20", "90"},
                {"李四", "21", "85"},
                {"王五", "19", "95"}
        };

        // 4. 写入数据
        int rowNum = 0;
        for (String[] rowData : data) {
            Row row = sheet.createRow(rowNum++);
            int colNum = 0;
            for (String cellData : rowData) {
                Cell cell = row.createCell(colNum++);
                cell.setCellValue(cellData);
            }
        }

        // 5. 自动调整列宽
        for (int i = 0; i < data[0].length; i++) {
            sheet.autoSizeColumn(i);
        }

        // 6. 写入到文件
        try (FileOutputStream outputStream = new FileOutputStream("D:\\13.xlsx")) {
            workbook.write(outputStream);
            System.out.println("Excel 文件写入成功!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 7. 关闭工作簿,释放资源
            try {
                workbook.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
相关推荐
渡我白衣1 分钟前
计算机组成原理(13):多路选择器与三态门
开发语言·javascript·ecmascript·数字电路·计算机组成原理·三态门·多路选择器
HUST3 分钟前
C语言 第十讲:操作符详解
c语言·开发语言
LaLaLa_OvO5 分钟前
spring boot2.0 里的 javax.validation.Constraint 加入 service
java·数据库·spring boot
Solar20256 分钟前
构建高可靠性的机械设备企业数据采集系统:架构设计与实践指南
java·大数据·运维·服务器·架构
田里的水稻7 分钟前
matlab_绘图线条颜色显示和点的形状显示
开发语言·matlab
慧一居士9 分钟前
jdk1.8 及之后的新版本介绍,新特性示例总结
java
2501_907136829 分钟前
Word题库转换Excel
word·excel·软件需求
CCPC不拿奖不改名10 分钟前
python基础:python语言的数据结构+面试习题
开发语言·数据结构·python·面试
Tan385111 分钟前
陪读蛙 Read Frog 配置 API 教程|低成本实现高质量翻译
开发语言·机器翻译·自动翻译·api key·tensdaq·陪读蛙·read frog
eybk11 分钟前
拖放pdf转化为txt文件多进程多线程合并分词版
java·python·pdf