简单的java操作excel文件
2012-04-09 16:53
239 查看
JXL(Java Excel API)是一个用来动态读写Excel文件的开源框架,利用它可以在任何支持Java的操作系统上动态读写Excel文件。JXL的主页是:http://www.andykhan.com/jexcelapi/,可以在这里下载到它的最新的版本。
当然我们使用JXL主要是用它来动态读写Excel文件。现在就来看看JXL在对Excel的读和写上都提供了那些支持。
先来看看Excel文件中都有写上面对象
1 文件对象 2工作簿对象 3 单元格对象。
相应的在JXL中就有Workbook,Sheet ,Cell 。通过这三个对象我们就可以实现Excel文件的读取工作。
我们先想想一下读取步骤,不管是什么样的Excel操作框架必定都要经历
1选取Excel文件,2选择工作簿,3选择Cell,4读取信息。
那么现在就可以看看JXL中这四步骤如何体现:
//通过Workbook的静态方法getWorkbook选取Excel文件
Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));
//通过Workbook的getSheet方法选择第一个工作簿(从0开始)
Sheet sheet = workbook.getSheet(0);
//通过Sheet方法的getCell方法选择位置为C2的单元格(两个参数都从0开始)
Cell c2 = sheet.getCell(2,1);
//通过Cell的getContents方法把单元格中的信息以字符的形式读取出来
String stringc2 = c2.getContents();
可以看到正是刚才所说的四个步骤。
我们都知道Excel单元格是有格式的,那么这些信息如何取得。
Cell提供了一个getType方法能够返回单元格的类型信息,同时JXL提供了一个CellType类用来预设Excel中的类型信息,而且JXL提供了一些Cell类的子类用来分别用来表示各种类型的单元格,如LabelCell,NumberCell,DateCell分别表示字符、数值、日期类型的单元格。所以我们可以这样写:
if (c2.getType() == CellType.NUMBER)
{
NumberCell nc = (NumberCell) c2;
numberb2 = nc.getValue();
}
最后不要忘记关闭workbook以释放资源:
workbook.close();
读取和生成excel的实例代码如下:
当然我们使用JXL主要是用它来动态读写Excel文件。现在就来看看JXL在对Excel的读和写上都提供了那些支持。
先来看看Excel文件中都有写上面对象
1 文件对象 2工作簿对象 3 单元格对象。
相应的在JXL中就有Workbook,Sheet ,Cell 。通过这三个对象我们就可以实现Excel文件的读取工作。
我们先想想一下读取步骤,不管是什么样的Excel操作框架必定都要经历
1选取Excel文件,2选择工作簿,3选择Cell,4读取信息。
那么现在就可以看看JXL中这四步骤如何体现:
//通过Workbook的静态方法getWorkbook选取Excel文件
Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));
//通过Workbook的getSheet方法选择第一个工作簿(从0开始)
Sheet sheet = workbook.getSheet(0);
//通过Sheet方法的getCell方法选择位置为C2的单元格(两个参数都从0开始)
Cell c2 = sheet.getCell(2,1);
//通过Cell的getContents方法把单元格中的信息以字符的形式读取出来
String stringc2 = c2.getContents();
可以看到正是刚才所说的四个步骤。
我们都知道Excel单元格是有格式的,那么这些信息如何取得。
Cell提供了一个getType方法能够返回单元格的类型信息,同时JXL提供了一个CellType类用来预设Excel中的类型信息,而且JXL提供了一些Cell类的子类用来分别用来表示各种类型的单元格,如LabelCell,NumberCell,DateCell分别表示字符、数值、日期类型的单元格。所以我们可以这样写:
if (c2.getType() == CellType.NUMBER)
{
NumberCell nc = (NumberCell) c2;
numberb2 = nc.getValue();
}
最后不要忘记关闭workbook以释放资源:
workbook.close();
读取和生成excel的实例代码如下:
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.List; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class ExcelHandle { public static Cell[] cell; public static Cell[] getTitles(Sheet sheet) { return sheet.getRow(0); } public static int getRows(Sheet sheet) { return sheet.getRows(); } public static void readExcel(String filePath) { String[] columnName; int colNum, rowNum; try { InputStream is = new FileInputStream(filePath); //get excel workbook Workbook wb = Workbook.getWorkbook(is); //get sheet by name Sheet sheet = wb.getSheet("Payments"); cell = getTitles(sheet); colNum = cell.length; columnName = new String[colNum]; //read titles and output for (int i = 0; i < colNum; i++) { columnName[i] = cell[i].getContents(); System.out.print("\t" + columnName[i]); if (i == colNum - 1) System.out.print("\n"); } //read data and print rowNum = getRows(sheet); for (int i = 1; i < rowNum; i++) { cell = sheet.getRow(i); for (int j = 0; j < colNum; j++) System.out.print("\t" + cell[j].getContents()); System.out.print("\n"); } wb.close(); } catch (Exception excep) { excep.printStackTrace(); } } public static void writeExcel(String filePath) { String reportPath = "C://kpi_fund.xls"; List list = FileHandle.getFileData(filePath); try { OutputStream os = new FileOutputStream(reportPath); WritableWorkbook wb=Workbook.createWorkbook(os); WritableSheet sheet=wb.createSheet("Kpi_fund", 0); //set title font WritableFont wfont = new WritableFont(WritableFont.ARIAL, 16, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); WritableCellFormat cellFormat=new WritableCellFormat(wfont); //set title String[] title=(String[])list.get(0); int columnNum=title.length; for(int i=0;i<columnNum;i++){ Label titleLabel=new Label(i,0,title[i],cellFormat); sheet.addCell(titleLabel); } //set data int count=1; String[] data; Label dataLabel=null; for(;count<list.size();count++){ data=(String[])list.get(count); for(int j=0;j<data.length;j++){ dataLabel=new Label(j,count,data[j]); sheet.addCell(dataLabel); } } wb.write(); wb.close(); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- Java中配置文件Properties类的简单操作
- java中对字符串的一些简单操作
- Java 文件简单读操作
- JAVA类集(1)简单操作
- JAVA FTPClient FTP简单操作
- Java基础--对javaBean的简单内省操作
- Java生成和操作Excel文件(读、写)
- java实现简单的IO字节流读写操作
- java操作Excel文件
- 如何在Java程序中访问mysql数据库中的数据并进行简单的操作
- 利用java操作Excel文件
- JavaWEB开发时FCKeditor类似office界面的ajax框架,加入后就能做界面类似office,能进行简单的文本编辑操作+配置手册
- Java打印空心菱形,非常简单的操作
- 《Thinking in Java》第五篇笔记 就Java中的操作流程简单说几句
- Java项目中操作提示的简单实现
- ruby/python/java全覆盖的Selenium-Webdriver系列教程(2)————浏览器的简单操作
- Java生成和操作Excel文件
- 用Java对数据库进行简单操作的准备操作
- JAVA操作Excel文件
- java操作excel文件