Как мне создать новый файл Excel с помощью JXL? - PullRequest
10 голосов
/ 30 сентября 2008

Я пытаюсь создать новый файл Excel, используя jxl, но мне трудно найти примеры в их документации API и в Интернете.

Ответы [ 5 ]

11 голосов
/ 30 сентября 2008

Поразмыслив некоторое время, я наконец-то нашел что-то, что сработало, и увидел, что здесь еще не было опубликовано решение, поэтому вот что я нашел:

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

}
3 голосов
/ 29 августа 2015

Я знаю, что это очень старый вопрос. Тем не менее, я думаю, что могу добавить пример, который также добавляет значения ячеек:

/**
 *
 * @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 голосов
/ 11 апреля 2013

Прежде всего вам нужно поместить Jxl Api в ваш каталог java, скачать JXL api из http://www.andykhan.com/, распаковать его, скопировать jxl и вставить как 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) {

}
0 голосов
/ 09 июня 2016
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();
    }
}
0 голосов
/ 30 сентября 2008

Не уверен, если вам нужно придерживаться JXL, но лучшая библиотека для обработки файлов Excel - Apache POI HSSF .

Я думаю, что на моем веб-сайте есть много примеров, но если вам нужна дополнительная помощь, дайте мне знать. Я могу привести несколько примеров.

Просто из любопытства, POI обозначает Плохой интерфейс запутывания, а HSSF - это ужасный формат электронных таблиц. Вы видите, как сильно Apache любит форматы Microsoft Office: -)

...