jxl如何修改单元格的内容

用jxl进行EXCEL读写时,经常会遇到这样的问题:
[b]想要重新设置指定单元格的内容,但是保持所有格式不变[/b]
为此,我想方设法获取Cell对象,然后猜想Cell对象应该有setContent()或者setString()之类修改文本内容的方法吧。。。。我找了好久,都没有找到,看了JXL的API才发现Cell对象根本就没有这样的接口方法。
在百度上[url]http://zhidao.baidu.com/question/270104374.html&__bd_tkn__=5cbb18342161862f5605bf67a5b122a7971594f48078338d51fed8133ea5c69d362ad36bb4bcda3b39bb3949f6bbe47087ac3af56e60b1f4e7eb60157a5bfd339d63aaff5a0f03de0125270dd443bf0f3b77ef767c59b88bd344327d705c342cc8147e4038c0a8dbe907f8accbdc8d0cc33d2bf449aa[/url]看到一个人想出的一个方法,觉得甚好,贴上来:

大意就是:
先获取该cell的单元格格式:cell.getCellFormat();
然后,自己新建一个label对象:jxl.write.Label lbl = new jxl.write.Label(0, 0, "修改后的值");//将第一个单元格的值改为“修改後的值”;
然后,再把修改后的单元格的格式设定成跟原来一样:lbl.setCellFormat(cf);
最后,把这个新建的Label加入到sheet中,覆盖原来的cell内容。

这样就更新了单元格内容,又没有改变单元格的样式!


以下是原文:
[quote]
public static void modifyExcel(String excelpath){
try {
jxl.Workbook wb =null; //创建一个workbook对象
try {
InputStream is = new FileInputStream(excelpath); //创建一个文件流,读入Excel文件
wb = Workbook.getWorkbook(is); //将文件流写入到workbook对象
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// jxl.Workbook 对象是只读的,所以如果要修改Excel,需要创建一个可读的副本,副本指向原Excel文件(即下面的new File(excelpath))
jxl.write.WritableWorkbook wbe= Workbook.createWorkbook(new File(excelpath), wb);//创建workbook的副本
WritableSheet sheet = wbe.getSheet(0); //获取第一个sheet
WritableCell cell =sheet.getWritableCell(0, 0);//获取第一个单元格
jxl.format.CellFormat cf = cell.getCellFormat();//获取第一个单元格的格式
jxl.write.Label lbl = new jxl.write.Label(0, 0, "修改后的值");//将第一个单元格的值改为“修改後的值”
lbl.setCellFormat(cf);//将修改后的单元格的格式设定成跟原来一样

sheet.addCell(lbl);//将改过的单元格保存到sheet
wbe.write();//将修改保存到workbook --》一定要保存
wbe.close();//关闭workbook,释放内存 ---》一定要释放内存

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
[/quote]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值