下面是用到的Jar包,和下载地址
Maven仓库地址:https://repo.maven.apache.org/maven2/
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.10</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
try {
FileInputStream fs = new FileInputStream("d://test.xls");
POIFSFileSystem ps=new POIFSFileSystem(fs); //使用POI提供的方法得到excel的信息
HSSFWorkbook wb=new HSSFWorkbook(ps);//读取解析.xls文件
FileOutputStream out=new FileOutputStream("d://test.xls"); //向d://test.xls中写数据
HSSFSheet sheet=wb.getSheetAt(0); //获读取第一个sheet,因为一个excel可能有多个工作表
HSSFRow row=sheet.getRow(4);//获取第5行
row.getCell(1).setCellValue("第五行第一个单元格");//获取第一个单元格并赋值
//插入数据
int sheetLastRowNum = sheet.getLastRowNum();//得到最后一行的行号
HSSFRow lostRow = sheet.getRow(sheetLastRowNum); //得到最后一行
int lastCellNum = lostRow.getLastCellNum();//得到该行(lostRow)最后一个单元格
//追加数据
HSSFRow lastrow = sheet.createRow(sheet.getLastRowNum()+1);//在最后一行下面一行创建新的一行
lastrow.createCell(0).setCellValue("新的一行第一个单元格");//在新创建的一行创建第一个单元格并添加数据
lastrow.createCell(1).setCellValue("新的一行第二个单元格");//设置第二个(从0开始)单元格的数据
/**
* 删除行
* ShiftRows(int startRow,int endRow,int n)
* startRow:开始行
* endRow:末尾行
* n:移动n行数startRow到endRow数据域(正数:向下移,负数:向上移)
*/
sheet.shiftRows(1,1,1);//开始行第2行,结束行第2行,把第2行到第二行向下移1行(第2行数据覆盖第3行数据)
// sheet.shiftRows(5,sheet.getLastRowNum(),-1);//从第6行到最后一行,向上移1行,覆盖掉第五行。(删除第五行)
out.flush();
wb.write(out);
out.close();
FileInputStream fs2 = new FileInputStream("d://test.xlsx");
XSSFWorkbook wb2 = new XSSFWorkbook(fs2);//读取解析.xlsx文件
FileOutputStream out2=new FileOutputStream("d://test.xlsx"); //向d://test.xls中写数据
out2.flush();
wb2.write(out2);
out2.close();
} catch (Exception e) {
e.printStackTrace();
}