Java笔记总结(三十八)---Java+POI操作excel将字符串放在另外一个sheet页并分列展示

sheet1页面
在这里插入图片描述
将最后一列中间变量信息拿出来并分列显示在sheet2中

package exceltest;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import java.io.FileInputStream;
import java.io.FileOutputStream;

public class TempTest {
    public static void main(String[] args) {
        test2();
    }

    private static void test2() {
        //获取文件地址
        FileInputStream fileInputStream = null;
        FileOutputStream fileOutputStream = null;
        try {
            fileInputStream = new FileInputStream("C:\\Users\\ybb\\Desktop\\a.xls");
            HSSFWorkbook hssfWorkbook = new HSSFWorkbook(fileInputStream);
            HSSFSheet hssfSheet1 = hssfWorkbook.getSheetAt(0);
            HSSFSheet hssfSheet2 = hssfWorkbook.getSheetAt(1);
            hssfWorkbook.setSheetName(1, "中间变量分列");

            //获取新创建sheet页的数据
            //获取单元格内容并写到新的sheet页中
            HSSFRow hssfRow = hssfSheet1.getRow(0);
            for (int i = 1; i <= hssfSheet1.getLastRowNum(); i++) {
                HSSFRow readrow = hssfSheet1.getRow(i);
                HSSFRow writeRow = hssfSheet2.createRow(i-1);
                for (int j = 0; j < hssfRow.getLastCellNum(); j++) {
                    HSSFCell readcell = readrow.getCell(j);
                    if (j == hssfRow.getLastCellNum() - 1) {
                        String str = readcell.getStringCellValue();
                        String[] strings = str.split(",");
                        for (int k = 0; k < strings.length; k++) {
                            HSSFCell writeRowCell = writeRow.createCell(k);
                            writeRowCell.setCellValue(strings[k]);
                        }
                    }
                }
            }
            fileOutputStream = new FileOutputStream("C:\\Users\\ybb\\Desktop\\a.xls");
            hssfWorkbook.write(fileOutputStream);

        } catch (Exception e) {
            e.printStackTrace();

        }
    }
}

sheet2页面最终结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Apache POI 库中的 `cloneSheet()` 方法实现将一个 sheet 复制到另一个 Excel 文件的 sheet 中。 具体实现步骤如下: 1. 创建一个新的工作簿对象,例如 `Workbook wb2 = new XSSFWorkbook();`。 2. 使用 `wb2.createSheet()` 方法创建一个新的 sheet 对象,并指定要将要复制的 sheet 的名称。 3. 使用 `wb1.getSheet(sheetName)` 方法获取要复制的 sheet 对象。 4. 使用 `wb2.cloneSheet()` 方法将要复制的 sheet 复制到新的工作簿对象中。该方法返回一个新的 sheet 对象,保存在变量中。 5. 使用 `wb2.write()` 方法将新的工作簿对象保存到磁盘上的 Excel 文件中。 示例代码如下: ```java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class CopySheetToAnotherExcel { public static void main(String[] args) throws Exception { // 打开旧的 Excel 文件 FileInputStream fis = new FileInputStream(new File("old.xlsx")); Workbook wb1 = new XSSFWorkbook(fis); fis.close(); // 创建新的工作簿对象 Workbook wb2 = new XSSFWorkbook(); // 创建新的 sheet,名称为 "newSheet" Sheet newSheet = wb2.createSheet("newSheet"); // 获取要复制的 sheet Sheet oldSheet = wb1.getSheet("oldSheet"); // 将旧的 sheet 复制到新的工作簿对象中,并返回新的 sheet 对象 Sheet clonedSheet = wb2.cloneSheet(wb1.getSheetIndex(oldSheet)); // 将新的 sheet 对象复制到新的工作簿对象中 wb2.setSheetName(wb2.getSheetIndex(clonedSheet), newSheet.getSheetName()); // 将新的工作簿对象保存到磁盘上的 Excel 文件中 FileOutputStream fos = new FileOutputStream(new File("new.xlsx")); wb2.write(fos); fos.close(); } } ``` 上述代码将旧的 Excel 文件中名为 "oldSheet" 的 sheet 复制到一个新的 Excel 文件中,并将其命名为 "newSheet"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值