在Excel中插入行并复制单元格格式

标题工作需要在Excel中的sheet页中,插入行并复制上一行的单元格格式。注意是当前sheet页中的操作。跨sheet页或者跨Excel文件并不能使用。`

public static void main(String[] args) {
	try {
	File file = new File("C:/Users/hou/Desktop/审批单签名/ApprovalForm11.xlsx");
	InputStream is = new FileInputStream(file);
	XSSFWorkbook workbook = new XSSFWorkbook(is);
	XSSFSheet expenseSheet = workbook.getSheetAt(0);
	insertRow(expenseSheet,11,1);
	FileOutputStream myxlsout = new FileOutputStream("C:/Users/hou/Desktop/审批单签名/workbook.xlsx");  
	workbook.write(myxlsout);  
    myxlsout.close();  
    is.close();
	
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

public static void insertRow(XSSFSheet sheet, int startRow,int rows) {
	 
	  sheet.shiftRows(startRow + 1, sheet.getLastRowNum(), rows,true,false);
	  for (int i = 0; i < rows; i++) {
		  	XSSFRow sourceRow = null;
		  	XSSFRow targetRow = null;
		  	
		  	sourceRow = sheet.getRow(startRow);
		  	targetRow = sheet.createRow(++startRow);
		  	targetRow.setHeight(sourceRow.getHeight());
		  	
		  	XSSFCellStyle rowStyle = sourceRow.getRowStyle();//获取当前行样式
		  	targetRow.setRowStyle(rowStyle);
		  	for (int col = 0; col < sourceRow.getLastCellNum(); col++) {
		  		XSSFCell sourceCell = sourceRow.getCell(col);
		  		XSSFCell targetCell = targetRow.createCell(col);
		  		if(null != sourceCell){
		  			targetCell.setCellStyle(sourceCell.getCellStyle());
		  		}else{
		  			System.out.println("1111111");
		  		}
		  		
			}
	  }
}`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值