简介:
jxl.jar是通过java操作excel表格的工具类库

jxl操作excel包括对象Workbook(工作簿),Sheet(工作表) ,Cell(单元格)。

一个excel就对应一个Workbook对象。

一个Workbook可以有多个Sheet对象。

一个Sheet对象可以有多个Cell对象。

读取Excel操作
通过Workbook,Sheet ,Cell这三个对象我们就可以实现Excel文件的读取工作。

读取步骤:

1、 选取Excel文件得到工作薄

Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));

2、 选择工作表,通过Workbook的getSheet方法选择第一个工作表(从0开始)

Sheet sheet = workbook.getSheet(0);

3、 选择Cell

读取单元格

通过Sheet的getCell方法选择位置为C2的单元格(两个参数都从0开始)

Cell c2 = sheet.getCell(2,1);

4、 读取信息

通过Cell的getContents方法读取单元格的值

把单元格中的信息以字符的形式读取出来String stringc2 = c2.getContents();

Cell提供了一个getType方法

能够返回单元格的类型信息,同时JXL提供了一个CellType类用来预设Excel中的类型信息,而且JXL提供了一些Cell类的子类用来分别用来表示各种类型的单元格,如LabelCell,NumberCell,DateCell分别表示字符、数值、日期类型的单元格

5、释放资源:

workbook.close()
import java.io.File;
import java.io.IOException;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

/**
 * jxl读excel
 * 
 * @author jianggujin
 * 
 */
public class JxlReadDemo
{
   public static void main(String[] args) throws BiffException, IOException
   {
      File xlsFile = new File("jxl.xls");
      // 获得工作簿对象
      Workbook workbook = Workbook.getWorkbook(xlsFile);
      // 获得所有工作表
      Sheet[] sheets = workbook.getSheets();
      // 遍历工作表
      if (sheets != null)
      {
         for (Sheet sheet : sheets)
         {
            // 获得行数
            int rows = sheet.getRows();
            // 获得列数
            int cols = sheet.getColumns();
            // 读取数据
            for (int row = 0; row < rows; row++)
            {
               for (int col = 0; col < cols; col++)
               {
                  System.out.printf("%10s", sheet.getCell(col, row)
                        .getContents());
               }
               System.out.println();
            }
         }
      }
      workbook.close();
   }
}

写入excel操作
通过WritableWorkbook,WritableSheet,Label这三个对象我们就可以实现Excel文件的插入工作。

1、 创建可写入的Excel工作薄

WritableWorkbook wwb = Workbook.createWorkbook(new File(“myfile.xls”));

2、创建工作表

WritableSheet ws = wwb.createSheet(“通讯录”, 0);

3、创建单元格

添加文本类单元格

Label labelC = new Label(0, 0, “This is a Label cell”);

ws.addCell(labelC);

4、写入到文件

wwb.write();// 写入数据

5、释放资源:

wwb.close();// 关闭文件

import java.io.File;
import java.io.IOException;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

/**
 * jxl写Excel
 * 
 * @author jianggujin
 * 
 */
public class JxlWriteDemo
{
   public static void main(String[] args) throws IOException, WriteException
   {
      File xlsFile = new File("jxl.xls");
      // 创建一个工作簿
      WritableWorkbook workbook = Workbook.createWorkbook(xlsFile);
      // 创建一个工作表
      WritableSheet sheet = workbook.createSheet("sheet1", 0);
      for (int row = 0; row < 10; row++)
      {
         for (int col = 0; col < 10; col++)
         {
            // 向工作表中添加数据
            sheet.addCell(new Label(col, row, "data" + row + col));
         }
      }
      workbook.write();
      workbook.close();
   }
}

更新excel操作
1、创建只读的Excel表副本

Workbook workbook = Workbook.getWorkbook(file);

2、创建可写入的Excel工作薄

WritableWorkbook writableWorkbook = Workbook.createWorkbook(file, workbook);

3、其他操作与写入excel操作类似

java CellRangeAddress 的用法 java cell类_释放资源