java向2007以上版本excel中追加内容

需要的jar包:

dom4j-1.6.1.jar

ooxml-schemas-1.4.jar

poi-3.10.1.jar

poi-ooxml-3.10.1.jar

xmlbeans-3.0.2.jar

下载地址(输入名字查找即可):https://mvnrepository.com/artifact/dom4j/dom4j/1.6.1

代码:

package createExcel;

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

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class AddExcel {
	public static void main(String[] args) throws Exception {  
		FileInputStream fs=new FileInputStream(System.getProperty("user.dir") + "\\head.xlsx");  //获取d://test.xls
//		POIFSFileSystem ps=new POIFSFileSystem(fs);  //使用POI提供的方法得到excel的信息
		XSSFWorkbook wb=new XSSFWorkbook(fs);  
		XSSFSheet sheet=wb.getSheetAt(0);  //获取到工作表,因为一个excel可能有多个工作表
		XSSFRow row=sheet.getRow(0);  //获取第一行(excel中的行默认从0开始,所以这就是为什么,一个excel必须有字段列头),即,字段列头,便于赋值
		System.out.println(sheet.getLastRowNum()+" "+row.getLastCellNum());  //分别得到最后一行的行号,和一条记录的最后一个单元格
		
		FileOutputStream out=new FileOutputStream(System.getProperty("user.dir") + "\\head.xlsx");  //向d://test.xls中写数据
		row=sheet.createRow((short)(sheet.getLastRowNum()+1)); //在现有行号后追加数据
		row.createCell(0).setCellValue("hello"); //设置第一个(从0开始)单元格的数据
		row.createCell(1).setCellValue(1); //设置第二个(从0开始)单元格的数据

		
		out.flush();
		wb.write(out);  
		out.close();  
		System.out.println(row.getPhysicalNumberOfCells()+" "+row.getLastCellNum());  
	}  
}

注意2003版本的xls文件用HSSF,2007版本的xlsx用XSSF,不然会报错。

以上代码亲测,完全有用。

你可能感兴趣的:(java,java,excel)