Excel找到不可读的内容-POI XSSFWorkbook setcellvalue

时间:2013-01-01 15:14:14

标签: apache-poi

我正在尝试为xlsx文件设置cellcellue,程序运行正常但没有错误,但在打开xlsx文件时会抛出一条错误,说Excel找不到可读的内容

public boolean setCellData(String sheetName,String colName,int rowNum, String data){
    try{
    fis = new FileInputStream(path); 
    workbook = new XSSFWorkbook(path);

    if(rowNum<=0)
        return false;

    int index = workbook.getSheetIndex(sheetName);
    int colNum=-1;
    if(index==-1)
        return false;


    sheet = workbook.getSheetAt(index);


    row=sheet.getRow(0);
    for(int i=0;i<row.getLastCellNum();i++){
        //System.out.println(row.getCell(i).getStringCellValue().trim());
        if(row.getCell(i).getStringCellValue().trim().equals(colName))
            colNum=i;
    }
    if(colNum==-1)
        return false;

    sheet.autoSizeColumn(colNum); 
    row = sheet.getRow(rowNum-1);
    if (row == null)
        row = sheet.createRow(rowNum-1);

    cell = row.getCell(colNum); 
    if (cell == null)
        cell = row.createCell(colNum);

    // cell style
    //CellStyle cs = workbook.createCellStyle();
    //cs.setWrapText(true);
    //cell.setCellStyle(cs);

    cell.setCellValue(data);

    fileOut = new FileOutputStream(path);

    workbook.write(fileOut);
    fileOut.close();    

    }
    catch(Exception e){
        e.printStackTrace();
        return false;
    }
    return true;
}

1 个答案:

答案 0 :(得分:0)

您已初始化FileInputStream,但未使用它。请替换

fis = new FileInputStream(path); 
workbook = new XSSFWorkbook(path);

fis = new FileInputStream(path); 
workbook = new XSSFWorkbook(fis);

这适用于我,并没有显示任何错误。