前面我们都是在用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);
则会出现下面的问题:
希望有哪位知道的大侠帮忙解答一下,谢谢!附件中有该代码!