How Do I Create a New Excel File Using JXL?
Asked Answered
D

5

10

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.

Dubuffet answered 29/9, 2008 at 21:2 Comment(0)
D
11

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) {

}
Dubuffet answered 29/9, 2008 at 21:16 Comment(4)
Out of curiosity, any particular reason why you are sticking to JXL?Mallarme
It's already in use in our project fairly extensively and I'm not the team lead :PDubuffet
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 :)Mallarme
Heh thanks, I'll definitely keep that in mind for next time :)Dubuffet
B
4

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();
    }
}
Bevins answered 28/8, 2015 at 23:26 Comment(0)
B
2

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) {

}
Brilliantine answered 11/4, 2013 at 19:58 Comment(0)
M
0

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 :-)

Mallarme answered 29/9, 2008 at 21:7 Comment(0)
T
-1
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();
    }
}
Tallu answered 9/6, 2016 at 17:44 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.