ITI
ITI

Reputation: 1

editing an excel sheet using Apache poi

i am trying to edit an excel sheet using apache poi, I have a worksheet having 2 rows and 5 columns if second cell of row 2 is null then it should add a 3rd row , but i am getting a class not found exception, although the UpdateXLS is present in my D drive.

Here is the code:

public class New {
public static void main(String[] args){
    try{
     InputStream inp = new FileInputStream("D:\\UpdateXLS.xls");
        //InputStream inp = new FileInputStream("workbook.xlsx");

        Workbook wb = WorkbookFactory.create(inp);
        Sheet sheet = wb.getSheetAt(0);
        Row row = sheet.getRow(2);
        Cell cell = row.getCell(2);
        if (cell == null)
            cell = row.createCell(3);
        cell.setCellType(Cell.CELL_TYPE_STRING);
        cell.setCellValue("a test");

        // Write the output to a file
        FileOutputStream fileOut = new FileOutputStream("UpdateXLS.xls");
        wb.write(fileOut);
        fileOut.close();
    }
    catch(Exception e){
        e.printStackTrace();
    }
}       

What should i do ?

Upvotes: 0

Views: 2072

Answers (2)

Aniket Kulkarni
Aniket Kulkarni

Reputation: 12983

From the comment , I can suggest you that check file exits on the path specified.

Use File

File f = new File("D:\\UpdateXLS.xls");
//check whether file exists or not to avoid any further exceptions
if(f.exists()){
  Workbook wb = WorkbookFactory.create(f);
  Sheet sheet = wb.getSheetAt(0);
  Row row = sheet.getRow(2);
  ......
  .......
  ........
}

FileNotFoundException

Signals that an attempt to open the file denoted by a specified pathname has failed.

This exception will be thrown by the FileInputStream, FileOutputStream, and RandomAccessFile constructors when a file with the specified pathname does not exist.

It will also be thrown by these constructors if the file does exist but for some reason is inaccessible, for example when an attempt is made to open a read-only file for writing.


When you are writing a file check your path

FileOutputStream fileOut = new FileOutputStream("UpdateXLS.xls");

Change to

FileOutputStream fileOut = new FileOutputStream("D:\\UpdateXLS.xls");

Upvotes: 1

MSA
MSA

Reputation: 2482

The problem seems to be at

FileOutputStream fileOut = new FileOutputStream("UpdateXLS.xls");

try to replace the line with:

FileOutputStream fileOut = new FileOutputStream("D:\\UpdateXLS.xls");

Upvotes: 0

Related Questions