Java JXL 实现Excel文件读写操作
1:Excel解析的三种实现方式
Apache POI:提供API给Java程序对Microsoft office格式档案读和写的功能。
HSSF:horrible SpreadSheet Format,通过HSSF,可以实现纯java代码读取、写入、修改Excel文件。
对于导入导出内容的不同,查询poi的API,使用不同的类库。
扩展:iText不仅可以生成PDF或rtf的文档,还可以将xml html文件转换成PDF格式。
JXL:java Excel可以读取excle文件的内容,创建新的excel文件,更新已经存在的excel文件。
FastExcel:是纯Java开发的excel文件读取组件,只关注excel的内容,不关注其他属性如颜色、字体。
2:JXL
写操作:
package com.zhao.JXL; import java.io.File; import java.io.IOException; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class JXL_Write { /** * JXL创建Excel * @author zhao * @param args */ public static void main(String[] args) { String[] title = { "id", "name", "gender" }; // 创建Excel文件 File file = new File("D:" + File.separator + "jxl_text.xls"); try { file.createNewFile(); // 创建工作薄workBook WritableWorkbook workbook = Workbook.createWorkbook(file); // 创建工作表sheet WritableSheet sheet = workbook.createSheet("sheet1", 0); Label label = null; /* * column:列 row:行 content:内容 JXL没有直接针对单元格的操作,直接对行 或者 列进行写入,如果操作单元格 * 会有些复杂。 */ // Label label2=new Label(column, row, content); // 第一行设置列名 for (int i = 0; i < title.length; i++) { label = new Label(i, 0, title[i]); sheet.addCell(label); } // 追加数据 for (int i = 1; i < 5; i++) { label = new Label(0, i, 1 + ":zhao" + i); sheet.addCell(label); label = new Label(1, i, 2 + ":zhao" + i); sheet.addCell(label); label = new Label(2, i, 3 + ":zhao" + i); sheet.addCell(label); } // 写入数据 workbook.write(); workbook.close(); } catch (Exception e) { e.printStackTrace(); } } }
读操作:
package com.zhao.JXL; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import java.io.File; import java.io.IOException; public class JXL_Read { /** * JXL解析excel * @author zhao * @param args */ public static void main(String[] args) { try { //创建workBook,并指定路径 Workbook workbook=Workbook.getWorkbook(new File("D:"+File.separator+"jxl_text.xls")); //获取工作表sheet Sheet sheet=workbook.getSheet(0); //获取数据 int rows=sheet.getRows(); //行 int columns=sheet.getColumns(); //列 for(int row=0;row<rows;row++){ for(int column=0;column<columns;column++){ Cell cell=sheet.getCell(column, row); System.out.print(cell.getContents()+" "); } System.out.println(); } workbook.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }