2008-09-29 14 views

Odpowiedz

8

Po aprowizacji chwilę dłużej w końcu znalazłem coś, co widział i pracował tam jeszcze nie było rozwiązanie pisał tu jeszcze, więc oto co znalazłem:

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

} 
+0

z ciekawości żadnego konkretnego powodu, dlaczego trzymanie JXL? – kolrie

+0

Jest już wykorzystywany w naszym projekcie dość szeroko i nie jestem kierownikiem zespołu: P – Aaron

+0

Mam cię! :) Użyłem POI HSSF i jest bardzo elastyczny. Jeśli zaczynałeś coś od podstaw, powiedziałbym, żebym podążał tą ścieżką. Ale ponieważ utknąłeś z JXL, powodzenia :) – kolrie

0

Nie jesteś pewien, czy musisz trzymać się JXL, ale najlepszą biblioteką do obsługi plików Excel jest Apache's POI HSSF.

Myślę, że na stronie internetowej podałem wiele przykładów, ale jeśli potrzebujesz dodatkowej pomocy, daj mi znać. Mogę mieć kilka przykładów leżących w pobliżu.

Po prostu z ciekawości, POI oznacza Słaby Interfejs Obfuskacji, a HSSF to Straszny Format Spreadsheet. Zobaczysz ile Apache kocha formaty Microsoft Office :-)

2

Przede wszystkim musisz umieścić Jxl Api w swoim katalogu java, pobrać apikę JXL z http://www.andykhan.com/ rozpakuj, skopiuj jxl i wklej jak 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) { 

} 
2

Wiem, że to bardzo stare pytanie. Jednak myślę, że mogę przyczynić się do przykładu, który również dodaje wartości komórkowych:

/** 
* 
* @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(); 
    } 
} 
-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(); 
    } 
} 
Powiązane problemy