Excel:将指定的单元格移动n行,实现行的插入

该博客介绍了一种使用Apache POI库在Java中实现Excel数据操作的方法。具体场景是在'广东'行下方插入'广东1',通过调用`shiftRows`方法将后续行向下移动,然后在索引1的位置添加新的数据。这展示了如何在程序中动态修改电子表格内容。

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

在现有的Excel表格中,指定某一行插入数据,下面的单元格往下移动

移动前:

在这里插入图片描述

如上图,Excel 第一个单元格“广东”的索引是0,在“广东”下插入一条“广东1”的数据,得先将“广东2”(索引是1)以下的所有单元格向下移动一个单元格,然后再索引为1的位置添加“广东1”;

实现代码:

		String url = "C:\\test.xls";
        FileInputStream fs;
        try {
             fs = new FileInputStream(url);
            POIFSFileSystem ps = new POIFSFileSystem(fs); //使用POI提供的方法得到excel的信息
            HSSFWorkbook wb = new HSSFWorkbook(ps);
            HSSFSheet sheet = wb.getSheetAt(0); //获取到工作表,因为一个excel可能有多个工作表
            // 移动单元格
            sheet.shiftRows(1, sheet.getLastRowNum(), 1);//将指定单元格移动 n 行
            HSSFRow row = sheet.getRow(1);
            FileOutputStream out = new FileOutputStream(url); //向test.xls中写数据
            row.createCell(0).setCellValue("广东1"); //设置第一个(从0开始)单元格的数据
            row.createCell(1).setCellValue("广州1"); //设置第二个(从0开始)单元格的数据
            out.flush();
            wb.write(out);
            out.close();
            System.out.println(row.getPhysicalNumberOfCells() + " " + row.getLastCellNum());
        } catch (Exception e) {
            e.printStackTrace();
        }

移动后:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值