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();
}
}
//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();
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
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.