jexcelapi學習筆記三——各資料型別的寫操作(修改)

qqbb0011發表於2011-12-06

前面我們都是在用jxl建立Excel檔案,這次我們介紹如何更新一個已經存在的工作薄。在Jxl中對Excel的修改是比較特別的,它主要分為3步:

 

1.構造只讀的 Excel 工作薄

 

Workbook w1 = Workbook.getWorkbook(new File(path));//path為檔案所在路徑

 

2.根據已建立Excel的工作簿建立新的可寫入的工作簿

 

WritableWorkbook wb = Workbook.createWorkbook(new File(path), w1); //w1為已建立的工作簿

 

3. 在新的工作表寫入或在原有的工作表中寫入

    // 得到已存在的工作表

WritableSheet sheet1 = wb.getSheet(0);
// 修改原來的單元格資料
WritableCell cell = new Label(0, 0, "在原有Sheet上修改");
sheet1.addCell(cell);
// 建立新的一頁,sheet只能在工作簿中使用
WritableSheet sheet = wb.createSheet("tt", 1);
cell = new Label(0, 0, "JExcelApi支援資料格式");
CellFormat cf = null;
sheet.addCell(cell);
cell = new Label(0, 1, "資料格式");
sheet.addCell(cell);
cell = new Label(1, 1, "浮點數");
sheet.addCell(cell);
cell = new Label(2, 1, "整數");
sheet.addCell(cell);
cell = new Label(3, 1, "布林值");
sheet.addCell(cell);
cell = new Label(4, 1, "日期");
sheet.addCell(cell);

cell = new Label(0, 2, "資料例項");
sheet.addCell(cell);
// 生成儲存浮點數的單元格,通過jxl.write.Number來實現jxl.write.WritableCell介面
// Number建構函式三個引數是1.列號2.行號3.資料
cell = new Number(1, 2, 99.99);
sheet.addCell(cell);
// 生成儲存整數的單元格
cell = new Number(2, 2, 99);
sheet.addCell(cell);
// 生成儲存布林值的單元格
cell = new Boolean(3, 2, false);
sheet.addCell(cell);
// 生成儲存日期的單元格,併為該時間設定輸出格式
Calendar cal = Calendar.getInstance();
cal.set(2011, 11, 11, 11, 11, 11);
Date d = cal.getTime();
DateFormat df = new DateFormat("yyyy-MM-dd hh:mm:ss");// 為時間設定輸出格式為:"yyyy-MM-dd hh:mm:ss"
cf = new WritableCellFormat(df);
cell = new DateTime(4, 2, d, cf);
sheet.addCell(cell);

// 將內容寫到輸出流中,然後關閉工作區,最後關閉輸出流
wb.write();
wb.close();
w1.close();

 

上面紅色的程式碼如果我換成如下程式碼:

WritableWorkbook wb = Workbook.createWorkbook(new FileOutputStream(path), w1);

 則會出現下面的問題:


希望有哪位知道的大俠幫忙解答一下,謝謝!附件中有該程式碼!

 

相關文章