利用jxl.jar读写excel文件

本文介绍如何借助jxl.jar库来读取和写入excel文件,包括所需的jar包引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用jxl.jar读写excel文件

这几天一直没更新笔记,就是因为卡在这里了,不得不说,底子太薄了,不多说进入正题
需要添加的jar包:jxl.jar

package plansinterface
import jxl.*;
import jxl.write.*;
import java.io.File;
//上面是包名和引入的类或方法
class Task {
 static void main(args) {
  def filename="D:\\soapuilog\\exceldb\\exceldb.xls"     //定义数据源
  def task = new Task()
  task.Readexcel(filename)
  task.writeexcel(2, 2, "abcd",filename)
  //在主函数中实例化对象,然后进行方法调用
  }
//下面是读取excel的方法,这里的资料是读取.xls文件,07以后的excel文件不适用,建议适用poi读取。ps:那个还没写稍后有空更新
/*读取excel的过程
1、考虑函数的参数问题,因为是读取文件,所已文件肯定是一个参数,要不然程序找不到文件就没法读取
2、把源文件找到之后,转换为jxl识别的Workbook 类型,也就是rwb(工作簿)
3、取出sheet(工作表)的数量和名称
4、取出单个sheet(工作表)中的rows(行数)、columns(列数)
5、定义一个二维数组(我这里是用groovy写的,跟java类似,其他语言自行参考)
6、利用循环读取每一个单元格的值,并存入数组中
*/
 def Readexcel(filename){            //声明方法,设置一个参数
  jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(filename));        //找到源文件进行类型转换
  int sheet = rwb.getNumberOfSheets();            //取出sheet的数量,如果有多个工作表,可以根据这个进行循环
  def sheets = rwb.getSheets();                            //取出sheet的值,赋值给sheet变量,这个变量类似于数组或列表
  jxl.Sheet rs = rwb.getSheet(0);                           //取出第一个工作表对象,存入rs对象中
  String sheetName = rs.getName();                    //用于取出第一个工作表的名称(单纯读取不需要这行)
  int columns = rs.getColumns();                        //定义columns 变量,用于存放总共有多少列的数值
  int rows = rs.getRows()                                    //定义rows变量,用于存放总共有多少行的数值

  def input = new Object[columns][rows]  //input为一个数组,数组的坐标为行和列
  for (c in 0..columns-1)
   {
   for (r in 0..rows-1)
    {
     input[c][r]= rs.getCell(c,r).getContents();
    }
   }
   //println input
   //遍历工作表的数据,存入数组中
   rwb.close()                //关闭文件,打开文件,用完后要记得关闭
/*
到这里为止,读取excel并存入数组的工作就完成了
下面的部分是介绍往已经存在的excel文件中写入数据
还是先梳理思路的问题
1、首先考虑参数问题
1.1、首先需要找到要修改的文件,那么文件参数是一个
1.2、如果要对单元格进行赋值,肯定需要坐标,坐标是又行和列决定的,所以需要行和列的值
1.3、找到目标单元格后,就需要赋值,那就需要一个“新值”的参数
2、给单元格赋值的过程
2.1、首先找到需要修改的文件,对源文件进行类型转换,转换为Workbook 类型
2.2、找到需要修改的sheet(工作表),并赋值给sheet对象
2.3、因为源文件是只读模式,所以建立一个源文件的副本
在参数中加入源文件工作表对象,是为了进行源文件和副本之间的数据传递
在副本中进行更改,然后把更新后的值传递给源文件的工作表对象
2.4、建立源文件需要修改的工作表对象副本(理由和2.3一致,这里我理解了好久,利用指针的原理总算想明白了)
2.5、利用Label定位单元格,并且传入“新值”
2.6、用addCell进行赋值
2.7、保存文件
2.8、关闭文件
*/
}
 def writeexcel(column,row,newvalue,filename){               //声明方法,确定方法参数
  Workbook rwb = Workbook.getWorkbook(new File(filename));            //找到源文件进行类型转换
  Sheet sheet = rwb.getSheet(0)                    //找到需要修改的工作表,赋值给sheet对象
  WritableWorkbook wwb = Workbook.createWorkbook(new File(filename),rwb)        
//建立源文件副本,参数中加入源文件工作簿对象,用于数据传递
  WritableSheet sh = wwb.getSheet(0)             //找到需要修改的工作表,赋值给sh对象
  Label label = new Label(column,row,newvalue)            //利用Label定位单元格,并且传入“新值”
  sh.addCell(label);                    //用addCell进行赋值
  wwb.write();                            //保存文件
  wwb.close()                            //关闭文件
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值