I'm trying to create a new Excel file using jxl, but am having a hard time finding examples in their API documentation and online.
5 Answers
After messing around awhile longer I finally found something that worked and saw there still wasn't a solution posted here yet, so here's what I found:
try {
String fileName = "file.xls";
WritableWorkbook workbook = Workbook.createWorkbook(new File(fileName));
workbook.createSheet("Sheet1", 0);
workbook.createSheet("Sheet2", 1);
workbook.createSheet("Sheet3", 2);
workbook.write();
workbook.close();
} catch (WriteException e) {
}

- 23,450
- 10
- 49
- 48
-
Out of curiosity, any particular reason why you are sticking to JXL? – kolrie Sep 29 '08 at 21:28
-
It's already in use in our project fairly extensively and I'm not the team lead :P – Aaron Sep 29 '08 at 22:12
-
Gotcha! :) I have used POI HSSF and it's very flexible. If you were starting something from grounds up, I would say to go down that path. But since you're stuck with JXL, good luck :) – kolrie Sep 29 '08 at 22:53
-
Heh thanks, I'll definitely keep that in mind for next time :) – Aaron Sep 30 '08 at 03:26
I know that it's a very old question. However, I think I can contribute with an example that also adds the cell values:
/**
*
* @author Almir Campos
*/
public class Write01
{
public void test01() throws IOException, WriteException
{
// Initial settings
File file = new File( "c:/tmp/genexcel.xls" );
WorkbookSettings wbs = new WorkbookSettings();
wbs.setLocale( new Locale( "en", "EN" ) );
// Creates the workbook
WritableWorkbook wwb = Workbook.createWorkbook( file, wbs );
// Creates the sheet inside the workbook
wwb.createSheet( "Report", 0 );
// Makes the sheet writable
WritableSheet ws = wwb.getSheet( 0 );
// Creates a cell inside the sheet
//CellView cv = new CellView();
Number n;
Label l;
Formula f;
for ( int i = 0; i < 10; i++ )
{
// A
n = new Number( 0, i, i );
ws.addCell( n );
// B
l = new Label( 1, i, "by" );
ws.addCell( l );
// C
n = new Number( 2, i, i + 1 );
ws.addCell( n );
// D
l = new Label( 3, i, "is" );
ws.addCell( l );
// E
f = new Formula(4, i, "A" + (i+1) + "*C" + (i+1) );
ws.addCell( f );
}
wwb.write();
wwb.close();
}
}

- 2,833
- 1
- 30
- 26
First of all you need to put Jxl Api into your java directory , download JXL api from http://www.andykhan.com/ extract it,copy jxl and paste like C:\Program Files\Java\jre7\lib\ext.
try {
String fileName = "file.xls";
WritableWorkbook workbook = Workbook.createWorkbook(new File(fileName));
WritableSheet writablesheet1 = workbook.createSheet("Sheet1", 0);
WritableSheet writablesheet2 = workbook.createSheet("Sheet2", 1);
WritableSheet writablesheet3 = workbook.createSheet("Sheet3", 2);
Label label1 = new Label("Emp_Name");
Label label2 = new Label("Emp_FName");
Label label3 = new Label("Emp_Salary");
writablesheet1.addCell(label1);
writablesheet2.addCell(label2);
writablesheet3.addCell(label3);
workbook.write();
workbook.close();
} catch (WriteException e) {
}

- 697
- 3
- 14
- 31

- 21
- 1
Not sure if you need to stick with JXL, but the best library for handling Excel files is Apache's POI HSSF.
I think there are plenty of examples on the website I provided, but if you need further assistence, let me know. I may have a few examples laying around.
Just out of curiosity, POI stands for Poor Obfuscation Interface and HSSF is Horrible SpreadSheet Format. You see how much Apache loves Microsoft Office formats :-)

- 12,562
- 14
- 64
- 98
public void exportToExcel() {
final String fileName = "TodoList2.xls";
//Saving file in external storage
File sdCard = Environment.getExternalStorageDirectory();
File directory = new File(sdCard.getAbsolutePath() + "/javatechig.todo");
//create directory if not exist
if(!directory.isDirectory()){
directory.mkdirs();
}
//file path
File file = new File(directory, fileName);
WorkbookSettings wbSettings = new WorkbookSettings();
wbSettings.setLocale(new Locale("en", "EN"));
WritableWorkbook workbook;
try {
workbook = Workbook.createWorkbook(file, wbSettings);
//Excel sheet name. 0 represents first sheet
WritableSheet sheet = workbook.createSheet("MyShoppingList", 0);
Cursor cursor = mydb.rawQuery("select * from Contact", null);
try {
sheet.addCell(new Label(0, 0, "id")); // column and row
sheet.addCell(new Label(1, 0, "name"));
sheet.addCell(new Label(2,0,"ff "));
sheet.addCell(new Label(3,0,"uu"));
if (cursor.moveToFirst()) {
do {
String title =cursor.getString(0) ;
String desc = cursor.getString(1);
String name=cursor.getString(2);
String family=cursor.getString(3);
int i = cursor.getPosition() + 1;
sheet.addCell(new Label(0, i, title));
sheet.addCell(new Label(1, i, desc));
sheet.addCell(new Label(2,i,name));
sheet.addCell(new Label(3,i,family));
} while (cursor.moveToNext());
}
//closing cursor
cursor.close();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
workbook.write();
try {
workbook.close();
} catch (WriteException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}

- 25,467
- 10
- 75
- 100

- 173
- 13