Java如何操做Word, Excel, PDF文档(3)

3. 拷贝、更新Excel工做薄
  接下来简要介绍一下如何更新一个已经存在的工做薄,主要是下面二步操做,第一步是构造只读的Excel工做薄,第二步是利用已经建立的Excel工做薄建立新的可写入的Excel工做薄,参考下面的代码片断:(完整代码见ExcelModifying.java)
//建立只读的Excel工做薄的对象
jxl.Workbook rw = jxl.Workbook.getWorkbook(new File(sourcefile));
 
//建立可写入的Excel工做薄对象
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile), rw);
 
//读取第一张工做表
jxl.write.WritableSheet ws = wwb.getSheet(0);
 
//得到第一个单元格对象
jxl.write.WritableCell wc = ws.getWritableCell(0, 0);
 
//判断单元格的类型, 作出相应的转化
if(wc.getType() == CellType.LABEL)
{
Label l = (Label)wc;
  l.setString("The value has been modified.");
}
 
//写入Excel对象
wwb.write();
 
//关闭可写入的Excel对象
wwb.close();
 
//关闭只读的Excel对象
rw.close();
  之因此使用这种方式构建Excel对象,彻底是由于效率的缘由,由于上面的示例才是API的主要应用。为了提升性能,在读取工做表时,与数据相关的一些输 出信息,全部的格式信息,如:字体、颜色等等,是不被处理的,由于咱们的目的是得到行数据的值,既使没有了修饰,也不会对行数据的值产生什么影响。惟一的 不利之处就是,在内存中会同时保存两个一样的工做表,这样当工做表体积比较大时,会占用至关大的内存,但如今好像内存的大小并非什么关键因素了。
  一旦得到了可写入的工做表对象,咱们就能够对单元格对象进行更新的操做了,在这里咱们没必要调用API提供的add()方法,由于单元格已经于工做表当中,因此咱们只须要调用相应的setXXX()方法,就能够完成更新的操做了。
  尽单元格原有的格式化修饰是不能去掉的,咱们仍是能够将新的单元格修饰加上去,以使单元格的内容以不一样的形式表现。
  新生成的工做表对象是可写入的,咱们除了更新原有的单元格外,还能够添加新的单元格到工做表中,这与示例2的操做是彻底同样的。
  最后,不要忘记调用write()方法,将更新的内容写入到文件中,而后关闭工做薄对象,这里有两个工做薄对象要关闭,一个是只读的,另一个是可写入的。
相关文章
相关标签/搜索