简体   繁体   中英

How Do I Create a New Excel File Using JXL?

我正在尝试使用jxl创建一个新的Excel文件,但我很难在他们的API文档和在线查找示例。

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

}

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

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

}

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM