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)