Java操作Excel单元格
程序员文章站
2024-01-23 09:26:34
...
在Java中,对Excel进行处理有两个流行的Jar包,一个是POI,一个是JXL。jxl是在poi的基础上进行开发的,体积小,方便快捷,经常用的功能都能实现,具体两个有什么区别,请参照一下两个链接,分别转自
lanhuidong和javapub
http://javapub.iteye.com/blog/718056
http://lanhuidong.iteye.com/blog/1553532
本程序所解决的问题是将excel表中的某个单元格中的数据提取出来,然后进行部分操作,再将所得到的结果写入到另外的单元格中,网上大部分实例都是分别对一个excel文件进行读操作或者写操作,并且在进行写操作时几乎都是创建一个新的xls文件,在本例中,解决了对一个excel中的一个sheet进行操作,具体代码如下
Java代码:
import java.io.File; import jxl.Cell; import jxl.Workbook; import jxl.format.CellFormat; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class ReadandWriteExcel { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub String filepath = "test.xls"; //以都得方式打开一个excel文件 Workbook workbook = Workbook.getWorkbook(new File(filepath)); //打开文件的一个副本 WritableWorkbook writableWorkbook = Workbook.createWorkbook(new File(filepath), workbook); //利用writableWorkbook获取文件中的某一个sheet WritableSheet writableSheet = writableWorkbook.getSheet(0); //前面是列,后面是行 for(int i=1; i<writableSheet.getRows(); i++) { //定位某一单元格,前面是列,后面是行 Cell cell = writableSheet.getCell(3, i); //获取单元格中的内容 String result = cell.getContents(); /** * 对单元格中的内容进行处理 */ result = result.substring(6, 10); result = (2015-Integer.parseInt(result)) + ""; //获取单元格的格式 CellFormat cellFormat = cell.getCellFormat(); //创建一个新的label,也就是创建一个新的单元格 Label label = new Label(2, i, result); //将label设置成原来的格式 label.setCellFormat(cellFormat); //将新的单元格加入到原来的sheet中或者添加到新的sheet中 writableSheet.addCell(label); } //将原来数据写回 writableWorkbook.write(); //关闭输入流 writableWorkbook.close(); workbook.close(); } }