2010-10-06 45 views
3

這將創建提供了文件格式的Excel文件是不是要處理它的時候有效的錯誤,不正確的Excel文件上添加了許多:爲什麼此代碼生成無效的Excel文件?

public static void write() throws IOException, WriteException { 
    WorkbookSettings settings = new WorkbookSettings(); 
    File seurantaraportti = new File("ta.xls"); 
    WritableWorkbook seurw = Workbook.createWorkbook(ta,settings); 
    seurw.createSheet("ta", 0); 
    WritableSheet ws = seurw.getSheet(0); 
    addNumber(ws,0,0,100.0); 
    seurw.close(); 
} 

private static void addNumber(WritableSheet sheet, int column, int row, Double d) 
    throws WriteException, RowsExceededException { 
    Number number=new Number(column, row,d); 
    sheet.addCell(number); 
} 

我在做什麼錯?

+0

格式化您的問題請 – 2010-10-06 08:13:29

+0

您使用的是什麼庫?這不是標準的Java庫。 – 2010-10-06 08:16:53

+1

* ta *變量是什麼(它既不可見也不可見,或者您重寫了它,甚至不會編譯)。 * seurantaraportti *未使用。它應該是* ta *嗎? – haylem 2010-10-06 08:22:19

回答

-2

writableWorkbook seurw = Workbook.createWorkbook(ta,settings);

必須是

將WritableWorkbook seurw = Workbook.createWorkbook( 「TA」,設置);

+1

-1:很顯然,如果代碼看起來像這樣,代碼甚至不會編譯,所以它是一個錯字。如果你真的想糾正這個問題,把它寫成評論。發佈不是答案的答案只會阻止可能幫助您查看問題的其他人。 – chiccodoro 2010-10-06 09:01:30

+0

不會編譯一個未定義的var?其他答案沒有提到完全相同的? – Grumpy 2010-10-06 09:55:05

+0

它不會在Java中使用未定義的變量進行編譯(除非使用允許部分編譯的Eclipse編譯器,但仍然無法運行程序)。 Chiccodoro的觀點是有效的,儘管我發現反應有點嚴厲,因爲我們只是試圖領導OP澄清他的問題。這就是說,我刪除了我的答案,因爲有人發佈了一個解決方案,現在問題已被澄清。 – haylem 2010-10-06 10:02:53

4

您不寫任何內容到工作簿。你缺少

seurm.write()

關閉工作簿

seurw.close前();

以下是工作代碼。

import java.io.File; 
import java.io.IOException; 

import jxl.Workbook; 
import jxl.WorkbookSettings; 
import jxl.write.Number; 
import jxl.write.WritableSheet; 
import jxl.write.WritableWorkbook; 
import jxl.write.WriteException; 
import jxl.write.biff.RowsExceededException; 

public class WriteExcel { 

    public static void write() throws IOException, WriteException { 
     WorkbookSettings settings = new WorkbookSettings(); 
     // settings.setLocale(new Locale("en", "EN")); 
     File ta = new File("ta.xls"); 
     WritableWorkbook seurw = Workbook.createWorkbook(ta, settings); 
     seurw.createSheet("ta", 0); 
     WritableSheet ws = seurw.getSheet(0); 
     addNumber(ws, 0, 0, 100.0); 
     seurw.write(); // You missed this line. 
     seurw.close(); 
    } 

    private static void addNumber(WritableSheet sheet, int column, int row, 
      Double d) throws WriteException, RowsExceededException { 
     Number number = new Number(column, row, d); 
     sheet.addCell(number); 
    } 

    public static void main(String[] args) { 
     try { 
      write(); 
     } catch (WriteException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

} 
相關問題