最后,不要忘记关闭打开的Excel工作薄对象 , 以释放占用的内存,参见下面的代码片段:
//写入Exel工作表
wwb.write();
//关闭Excel工作薄对象
wwb.close();
这可能与读取Excel文件的操作有少少不同,在关闭Excel对象之前,你必须要先调用write()方法,因为先前的操作都是存储在缓存中的,所以要通过该方法将操作的内容保存在文件中 。如果你先关闭了Excel对象,那么只能得到一张空的工作薄了 。
拷贝、更新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()方法,将更新的内容写入到文件中,然后关闭工作薄对象,这里有两个工作薄对象要关闭,一个是只读的 , 另外一个是可写入的 。
小结
本文只是对Java Excel API中常用的方法作了介绍,要想更详尽地了解API,请大家参考API文档,或源代码 。Java Excel API是一个开放源码项目,请大家关注它的最新进展,有兴趣的朋友也可以申请加入这个项目,或者是提出宝贵的意见 。
【电子表java代码 java制表符怎么打】关于电子表java代码和java制表符怎么打的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- win10家庭版sqlserver,WIN10家庭版病毒和威胁防护关闭不了
- 微信能怎么连接电视,微信怎么连接电视机
- 怎么恢复魅族手机短信,魅族手机短信误删怎么恢复
- 前任突然关闭微信视频号又打开了,微信视频号之前关闭了怎么找回
- vb.net函数结构 vbnet doevent
- pg数据备份与恢复,苹果数据备份后怎么恢复
- mysql怎样存入数据库,mysql如何导入存储过程
- wps转pdf软件,wps转pdf用什么软件
- c语言函数体变量 c语言程序函数体的格式