最近,通过搜索一些资料,做了了一个简单的java操作excel的小例子:在java操作excel的工具中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI(即jxl)。jxl相对于poi功能比较弱一点,jxl对中文的支持非常好,API是纯java的,并不依赖于Windows系统,运行在Linux下也同样能处理excel。但是比较局限的是jxl对图形和图表的支持很有限(我想这一点估计跟朋友们公司做的操作excel时选择POI的缘由),仅仅能识别png格式。因为我只是做一个简单的小例子,而且以前没有用过java操作excel,所以就在网上随便搜了一下关于java操作excel的内容,最后我选择了用jxl,做了一读和修改已有的excel案例,把比较关键的code贴在下面<做这个有一个比较奇怪的感觉,好像跟之前的java读写文件很像>:我在做的过程中遇到这样的一个错<---jxl.read.biff.BiffException: Unable to recognize OLE stream--->我在网上搜索了,也有很多出现这样的错,后来发现有人说是excel的版本问题,我机器上的excel是2007后缀以xlsx,后来搞成2003版本的就ok了。package com.sample.excel;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileWriter;import java.io.IOException;import com.sample.excel.inteface.ExcelInterface;import com.sun.org.apache.bcel.internal.classfile.Field;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;/*关注:(使用jxl)java操作excel,一定离不了workbook创建一个excel的时候,需要先得到一个可写的workbook WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"));而读取一个excel的时候,需要得到这样一个workbookWorkbook wb = Workbook.getWorkbook(new File("test.xls"));修改一个excel的时候,需要这样一个workbook,它与创建excel时候的workbook类似,多了一个参数Workbook wb = Workbook.getWorkbook(new File("test.xls")); WritableWorkbook writerBook = Workbook.createWorkbook(new File("test.xls"), wb);*///创建excelpublic class ExcelCreate(){ public static void createExcel(){ //创建workbook WritableWorkbook book = Workbook.createWorkbook(new File("test.xls")); //表示生成一个名称为sheet1的sheet(工作表),参数0表示第一页 WritableSheet sheet = book.createSheet("sheet1",0); //指明单元格的位置是第一行第一列,并且内容为"test" Label label = new Label(0,0,"test"); //把该label加入到工作表中(注意只有可写的workbook和可写的sheet才能做这些增加,删除....操作) sheet.addCell(label); book.write(); book.close(); } }//读excelpublic class ExcelReader { private static ExcelInterface checkExcel = null; //private static ExcelInterface excelInterface = null; private static Workbook wb = null; //读取excel中的某一个 sheet. public static void readExcel(File excelFile){ try { FileInputStream is = new FileInputStream(excelFile); //读取excel数据表的第一步是创建workbook工作簿 wb = Workbook.getWorkbook(is); //通过 workbook来 访问excel sheet Sheet sh1 = wb.getSheet(2); //通过 sheet访问excel cell,获取第一行第一列 的值 // Cell c1 = sh1.getCell(1, 0); //获得excel所有sheet的名称 /*String sheetNames[] = wb.getSheetNames();//读取一个excel里的所有sheet名称 for (int i = 0; i < sheetNames.length; i++) { System.out.println("sheet name="+ i +sheetNames[i]); }*/ int columns = sh1.getColumns(); for (int i = 0; i < sh1.getRows(); i++) { //String[] nextLine = new String[columns]; System.out.println(); for (int j = 0; j < columns; j++) {//注意任何一个cell(单元格)getContents()以后都会得到一个字符串(不管它原来是什么类型,eg:整形、浮点型、字符....) String cellVal = sh1.getCell(j, i).getContents(); //System.out.print(sh1.getCell(j, i).getContents()+"