java poi操作xlsx文件,如何在原xlsx上进行某一行的复制到当前xlsx的新增行,内容和样式和原行保持不变

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java poi操作xlsx文件,如何在原xlsx上进行某一行的复制到当前xlsx的新增行,内容和样式和原行保持不变相关的知识,希望对你有一定的参考价值。

参考技术A

    首先要读取xlsx文件,创建一个基于硬盘的FileItem工厂  ,DiskFileItemFactory

    用poi读文件内容,获取到表格的行,不知道有没有直接复制某行的方法,但最笨的方法,可以读取每一个单元格,再新增一行,将数据一次插入

    HSSFSheet sheet = workbook.getSheetAt(0);先创建一个sheet对象

    HSSFRow row =sheet.getRow(0);以第一行为例

    short  lenth=row.getLastCellNum() ; 获取列数

    遍历列 ,用row.getCell() 获取列值

    创建新行  HSSFRow newRow = sheet.createRow(sheet.getLastRowNum()+1);

    再遍历赋值  HSSFCell cell = newRow.createCell(i);

    之前只做过poi的导入导出,所以没有实测,你可以尝试一下

java之使用poi对excel的.xls和.xlsx访问

Excel文档有.xls和.xlsx后缀的,当我们想把它们放在一个方法中进行读取excel文件时,有一个特别省事的做法:

 

 1  public static List<String> Read(String path) throws IOException {
 2 //调用read方法,传入你要读文件的位置,如:c:
ewone.xls
 3 List<String> list = new ArrayList<>();//用来存储读取Excel文件中的数据
 4 FileInputStream in=new FileInputStream(path);
 5         Workbook workbook = null;
 6         //获取工作表
 7         if(path.endsWith(".xlsx")){
 8             workbook=new XSSFWorkbook(in);
 9 
10         }
11         else
12         {
13         workbook=new HSSFWorkbook(in);
14         }
15         Sheet sheet = workbook.getSheetAt(0);
16        int lastRowNum=sheet.getLastRowNum();
17         for (int i = 0; i <= lastRowNum; i++) {
18      
19         Row row = sheet.getRow(i);//获取行(现在拿到每一行
20             if (row != null) {
21                 int lastcellnum = row.getLastCellNum();
22                 for (int j = 0; j < lastcellnum; j++) {//3获取每个单元格
23                     Cell cell = row.getCell(j);
24                     if (cell != null) {
25                         cell.setCellType(Cell.CELL_TYPE_STRING);
26                         String value = cell.getStringCellValue();//读取单元格数据
27                         System.out.println(value);
28                         list.add(value);
29                         }       
30                      }
31                  }
32              }
33 
34       return list;
35 }         

 

以上是关于java poi操作xlsx文件,如何在原xlsx上进行某一行的复制到当前xlsx的新增行,内容和样式和原行保持不变的主要内容,如果未能解决你的问题,请参考以下文章

JAVA编程中用Apache POI 怎么用SXSSFWorkbook对已存在的excel(.xlsx)操作进行写数据操作

如何使用Java创建Excel(.xls 和 .xlsx)文件 并写入数据

使用java读取xlsx格式的execl,除了poi还都有哪些方式

java 使用Apache POI读/写Excel文件(.xls或.xlsx)

java 使用Apache POI读/写Excel文件(.xls或.xlsx)

POI操作Excel详解,读取xls和xlsx格式的文件