2

I am trying to write a program that will append data to an Excel file in Java. I got up to the following code. But it rewrites the contents in the Excel file, not appending to it. Please help me to complete this.

public class jExcel
{
    static WritableWorkbook workbook;
    public static void main(String args[])throws Exception
    {
        workbook = Workbook.createWorkbook((new File("D:\\0077\\my2.xls")));
        WritableSheet sheet = workbook.createSheet("First Sheett",1);
        Label label = new Label(5,2,"ssssssssss");
        sheet.addCell(label);
        workbook.write();
        workbook.close();
    }
}
JeanValjean
  • 17,172
  • 23
  • 113
  • 157
V I J E S H
  • 7,464
  • 10
  • 29
  • 37

3 Answers3

5

Instead of using createWorkbook use "getWorkbook(java.io.File file) " to get an existing Excel. Then use getSheet(int index) to retrieve the appropriate sheet.

To the sheet you retrieved above use "addCell(WritableCell cell) " to append cells to the sheet.

Workbook workbook = Workbook.getWorkbook(new File(""D:\\0077\\my2.xls""));
WritableWorkbook copy = Workbook.createWorkbook(new File("output.xls"), workbook);
WritableSheet sheet2 = copy.getSheet(1); 
Label label = new Label(5,2,"ssssssssss"); 
sheet2.addCell(label); 

You will find a lot of examples here. http://www.andykhan.com/jexcelapi/tutorial.html

kensen john
  • 5,439
  • 5
  • 28
  • 36
5

//WRITE IN XLS

    WritableWorkbook workbook = Workbook.createWorkbook(new File("D:\\output.xls"));
    WritableSheet sheet = workbook.createSheet("First Sheet", 0);
    Label label = new Label(0, 2, "A label record"); 
    sheet.addCell(label);
    workbook.write(); 
    workbook.close();

    //MODIFY XLS

    Workbook workbook1 = Workbook.getWorkbook(new File("D:\\output.xls"));
    WritableWorkbook copy = Workbook.createWorkbook(new File("D:\\output.xls"), workbook1);
    WritableSheet sheet2 = copy.getSheet(0); 
    //WritableCell cell = sheet2.getWritableCell(5, 2); 

    copy.write();
    copy.close();
1

After opening the workbook from file, do like this:

WritableWorkbook copy = Workbook.createWorkbook(
   new File(""D:\\0077\\my2_copy.xls""), 
   workbook
);

You will get a copy of the workbook opened. Do the changes you need in that copy and save it instead.

Tommi
  • 8,550
  • 5
  • 32
  • 51