java 操作excel指定行列新增删除内容

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 *Description:excel文档信息指定位置新增,删除数据
 */
public class test {
	
	private static XSSFSheet sheet;
    
	/**
	 * 根据行和列的索引获取单元格的数据
	 * @param row
	 * @param column
	 * @return
	 */
	public static String getExcelDateByIndex(int row,int column){
		XSSFRow row1 = sheet.getRow(row);
		String cell = row1.getCell(column).toString();
		return cell;
	}



	public static void setExcelDateByIndex(int row,int column){
		Cell c =   sheet.getRow(row).getCell(column);
        c.setCellValue("无");
       
		
	}

	
	public static void main(String[] args) throws Exception{
		
		String path = "C:\\Users\\49611\\Desktop\\343\\正式 - 备份\\正式 - 备份\\外供 - 软件\\";		//要遍历的路径
		File file = new File(path);		//获取其file对象
		File[] fs = file.listFiles();	//遍历path下的文件和目录,放在File数组中
		for(File f:fs){					//遍历File[]数组
			if(!f.isDirectory()){
				System.out.println(f+"----开始");
				FileInputStream fileInputStream = new FileInputStream(f);
			    XSSFWorkbook sheets = new XSSFWorkbook(fileInputStream);
				//获取sheet
			    sheet = sheets.getSheet("xxx");//xxx:sheet名称
				// 需要提取文件的行数  row  以及列数 column
			    int  row = 114;
			    int column = 4;
				for(int i=row; i<=row;i++){//方便操作多行数据
					String cell = getExcelDateByIndex(i-1, column);
					if("".equals(cell)){
						setExcelDateByIndex(i-1, 4);
						System.out.println(f);
					}
				}
		        FileOutputStream fos = new FileOutputStream(f);
				sheets.write(fos);
				fileInputStream.close();
				fos.close();
				fileInputStream.close();
				System.out.println(f+"----结束");
			}		
			   
		}
		
		System.out.println("sucess!!");
	    
		
	}
	
	
	 
	
}

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