首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

jxl怎么修改单元格的内容

2012-09-27 
jxl如何修改单元格的内容用jxl进行EXCEL读写时,经常会遇到这样的问题:想要重新设置指定单元格的内容,但是

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

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

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


以下是原文:
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 blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} // jxl.Workbook 对象是只读的,所以如果要修改Excel,需要创建一个可读的副本,副本指向原Excel文件(即下面的new File(excelpath))jxl.write.WritableWorkbook wbe= Workbook.createWorkbook(new File(excelpath), wb);//创建workbook的副本WritableSheet sheet = wbe.getSheet(0); //获取第一个sheetWritableCell 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);//将改过的单元格保存到sheetwbe.write();//将修改保存到workbook --》一定要保存wbe.close();//关闭workbook,释放内存 ---》一定要释放内存} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (WriteException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

热点排行