jexcelapi学习笔记三——各数据类型的写操作(修改)

前面我们都是在用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);

 则会出现下面的问题:


jexcelapi学习笔记三——各数据类型的写操作(修改)

希望有哪位知道的大侠帮忙解答一下,谢谢!附件中有该代码!

 

你可能感兴趣的:(Excel)