jxl操作excel表格
来源:互联网 发布:郭天祥单片机教材下载 编辑:程序博客网 时间:2024/09/21 09:20
基础内容来自http://blog.csdn.net/z562743237/article/details/8592012
项目中我们经常会遇到表格的操作,目前用的比较多的是jxl和poi两种方式操作表格。以下是用jxl读取表格和生成表格的方法。
下面是个完整的程序,只需要jxl.jar包就可以运行。
package com.sunyard.iccs.report.util;import java.io.File;import java.io.IOException;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import jxl.write.biff.RowsExceededException;public class Test { //测试方法 public static void main(String[] args) { //保存在工程目录下// writeExcel("aaa.xls"); //保存在D盘目录下// writeExcel("d:\\aaa.xls");// readExcel(new File("aaa.xls")); // readExcel(new File("d:\\aaa.xls")); } /** * 创建一个excel表格,可以传入一个地址,自动在所给地址中创建一个excel并在里面写入内容。 */ public static void writeExcel(String fileName){ //创建一个可写的工作薄 WritableWorkbook wwb = null; try{ //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象 wwb = Workbook.createWorkbook(new File(fileName)); } catch(IOException e) { e.printStackTrace(); } //判断工作薄是否为空 if(wwb != null) { //创建一个可写的工作表 //Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置 WritableSheet ws = wwb.createSheet("工作表名称", 1); //下面开始添加单元格 for(int i=0;i<10;i++) { for(int j=0;j<5;j++) { //创建一个单元格 //这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行 Label label = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列"); try{ //将单元格添加到工作表中 ws.addCell(label); } catch(RowsExceededException e) { e.printStackTrace(); } catch(WriteException e) { e.printStackTrace(); } } } try { //将工作表写入工作薄中,不能写在for循环里,否则会报java.lang.NullPointerException异常 wwb.write(); System.out.println("Excel创建成功"); } catch (IOException e) { e.printStackTrace(); } finally { try { //关闭工作薄,释放资源 wwb.close(); } catch (WriteException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } } /** * 传入一个File类型的地址,能读取所给地址中文件的内容 */ public static void readExcel(File file) { //用来接受读取到的字符串 StringBuffer sb = new StringBuffer(); //定义一个工作薄 Workbook wwb = null; try{ //获取目标Excel表格 wwb = Workbook.getWorkbook(file); } catch(BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //Excel表格中的所有工作表 Sheet[] sheets = wwb.getSheets(); if(sheets!=null&&sheets.length>0) { for(int i=0;i<sheets.length;i++) { //工作表中的所有行 int rowNum = sheets[i].getRows(); if(rowNum>0) { for(int j=0;j<rowNum;j++) { //每一行中的所有单元格 Cell[] cells = sheets[i].getRow(j); if(cells!=null&&cells.length>0) { for(int k=0;k<cells.length;k++) { //将单元格中的内容拼接到sb中 sb.append(cells[k].getContents()); sb.append("\n"); } } } } } } System.out.println(sb.toString()); wwb.close(); }}
*********************************************************************************************************************************
下面三块内容的结果显示在下面的excel截图中。
以下是对单元格的格式(内容)进行操作。
//输入数字,在excel中显示是常规 jxl.write.Number number=new jxl.write.Number(0,0,2500.00); ws.addCell(number); //输入的是自定义的数字,在excel中显示是自定义 jxl.write.NumberFormat numberFormat=new jxl.write.NumberFormat("#0.##"); jxl.write.WritableCellFormat writableCellFormat=new WritableCellFormat(numberFormat); jxl.write.Number number1=new Number(1,1,0.2323,writableCellFormat); ws.addCell(number1); //输入的是日期,在excel中显示是常规 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String newdate = sdf.format(new Date()); Label label = new Label(2, 2, newdate); ws.addCell(label); //输入的是文本,在excel中显示的是常规 Label label1 = new Label(3, 3, "周星驰"); ws.addCell(label1); //输入的是布尔值,在excel中显示是常规 jxl.write.Boolean bool = new jxl.write.Boolean(4, 1, true); ws.addCell(bool);以下是对单元格的属性进行操作。
//合并单元格 ws.mergeCells(0, 6, 3, 8); label = new Label(0, 6, "合并了12个单元格");//在合并的单元格中输入文字 ws.addCell(label); //主要是改变单元格背景、字体、颜色等等 WritableCellFormat wc = new WritableCellFormat(); //设置字体居中 wc.setAlignment(Alignment.CENTRE); //设置边框和边框线 wc.setBorder(Border.ALL, BorderLineStyle.HAIR); //设置边框的颜色 wc.setBackground(jxl.format.Colour.RED); Label label2 = new Label(0, 9, "字体", wc); ws.addCell(label2);
以下是对字体的相关操作。
//设置字体的属性 jxl.write.WritableFont wfont = new jxl.write.WritableFont(WritableFont.createFont("楷书"), 20); WritableCellFormat font = new WritableCellFormat(wfont); Label label3 = new Label(0, 10, "这是楷书字体", font); ws.addCell(label3);
以下是获取单元格的相关属性。(内容是上面的,输出结果在下面的截图中)
/** * 获取单元格的属性 */ //获取所有的工作表 jxl.write.WritableSheet[] sheetList = wwb.getSheets(); //获取第1列所有的单元格 jxl.Cell[] cellc = ws.getColumn(0); System.out.println(cellc.length); //获取第1行所有的单元格 jxl.Cell[] cellr = ws.getRow(0); System.out.println(cellr.length); //获取第1行第1列的单元格 Cell c = ws.getCell(0, 0); String value = c.getContents(); System.out.println(value);
有时间再扯。。。
0 0
- jxl操作excel表格
- 使用jxl操作excel表格
- 根据jxl.jar包操作excel表格
- jxl架包操作excel表格
- jxl 操作Excel表格之Workbook
- jxl 操作Excel表格之Sheet
- jxl 操作Excel表格之Cell
- 操作EXCEL表格,第三方包jxl
- jxl 操作Excel表格之Workbook
- jxl解析excel表格
- jxl解析excel表格
- JAVA使用jxl.jar对excel表格进行操作处理
- 其他-jxl的使用(操作excel表格)
- 使用jxl输出excel表格
- jxl解析excel表格代码
- java jxl下载excel表格
- jxl操作Excel
- jxl操作Excel
- otsu自适应阈值分割的算法描述和opencv实现,及其在肤色检测中的应用
- svn使用
- Java操作ffmpeg--截取视频
- MongoDB与传统数据库的使用区别——批量插入与批量查询
- Android中XML文件的读写
- jxl操作excel表格
- 安卓应用开发Eclipse目录结构
- Java调用批处理文件(.bat)
- 第一次作业(4.C语言)
- SpringAOP实例之简单实现(Annotation形式)
- DB2中使用事件监控器抓取锁超时、死锁信息
- iOS常用的一些库
- 课程练习二-1013-A strange lift
- 缺页中断——FIFO、LRU、OPT这三种置换算法