[英]Inserting new column to an already existing excel file using jxl api
我正在使用jxl api來編輯現有的excel文件。 但是,當我嘗試添加一個新列並寫表時,它顯示空指針異常。 我正在使用的代碼如下所示:
File file = new File("d:\\test.xls");
Workbook workbook;
WritableWorkbook copy = null;
if (file.exists()) {
try {
workbook = Workbook.getWorkbook(file);
copy = Workbook.createWorkbook(new File("C:\\TEMP\\temp.xls"),
workbook);
} catch (BiffException e) {
e.printStackTrace();
} catch (FileNotFoundException fnf) {
fnf.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
WritableSheet sheet = copy.getSheet(0);
sheet.insertColumn(2); //this statement causes error
//if I comment it the code works fine
try {
copy.write();
copy.close();
}
catch(Exception e)
{
e.printStackTrace();
}
請幫我解決這個問題並插入新專欄。
我能夠成功編輯excel的單個單元格並編寫該文件。
上面的代碼可以在我的電腦上正常運行。 你最好告訴我們異常信息,並把整個代碼放在這里。
可能你使用的api並不是最好的。 我也有這個問題(insertcolumn行的nullpointer異常)並且在我下載jexcelapi之前找不到任何解決方案。
HTH
我們可以插入一個新單元格,從而插入一個新的行/列,如下所示
Workbook aWorkBook = Workbook.getWorkbook(new File("Originalfile.xls"));
WritableWorkbook aCopy = Workbook.createWorkbook(new File("Originalfile.xls"), aWorkBook);
WritableSheet aCopySheet = aCopy.getSheet(0);//index of the needed sheet
WritableCell aWritableCell = aCopySheet.getWritableCell(1,1);//no need!
jxl.write.Label anotherWritableCell = new jxl.write.Label(1,12 ,"SUN");
//position of the new cell in column,row
//can be a new Label() or new Number() or new Formula
aCopySheet.addCell(anotherWritableCell);
aCopy.write();
aCopy.close();
我不清楚insertRow()或insertColumn()方法的作用。 希望能幫助到你!
使用jxl是不可能的,你必須使用apache poi http://poi.apache.org/ (或者其他什么東西)
使用jxl,您只能讀取或編寫工作簿,而不能編輯現有工作簿。 您還可以復制工作簿並編輯新創建的。 WritableWorkbook newWorkbook = Workbook.createWorkbook(newFile,workbookTemplate,wbSettings); 但是你會丟失很多格式化的所有AutoFilters,這在我使用jxl時是我的問題。
這里有很好的例子http://poi.apache.org/spreadsheet/quick-guide.html http://www.kodejava.org/browse/49.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.