欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java操作Excel文件(使用jxl.jar)

程序员文章站 2024-02-24 12:53:28
...

首先声明一下,jxl.jar包下的操作针对的是.xls文件,即Excel在2003年前的文件,此处简单了解一下,毕竟都已经9102年了,现在大部分使用都是.xlsx文件了,所以更强大的 Apache POI 成为了更好的选择:详见我的另一篇博文:

jxl.jar下载链接:https://pan.baidu.com/s/1vQJhNlxGtRK0ekZagIeX8g

1.文件的创建:

import jxl.*;
import java.io.*;
import jxl.write.*;
import jxl.write.biff.RowsExceededException;
public class CreateExcel {

    public static void main(String[] args) throws RowsExceededException, WriteException{
        WritableWorkbook book;
        try {
            System.out.println("---start---");
            //打开文件 
            book = Workbook.createWorkbook(new File("Test.xls"));
            //生成名为“第一页”的工作表,参数0表示这是第一页  
            WritableSheet sheet = book.createSheet("sheet_one", 0);
            
            //在Label对象的构造中指名单元格位置是第一列第一行(0,0)    
            //以及单元格内容为Hello World
            Label label = new Label(0,0,"Hello World");
            
            //将定义好的单元格添加到工作表中    
            sheet.addCell(label);
             /*生成一个保存数字的单元格    
              必须使用Number的完整包路径,否则有语法歧义    
              单元格位置是第二列,第一行,值为789.123*/  
            jxl.write.Number num = new jxl.write.Number(0,1,123.456);
            sheet.addCell(num);
            //写入数据并关闭文
            book.write();
            book.close();
            System.out.println("---end---");
            
        } catch (IOException e) {
            System.out.println(e);            
        }
    }
}

2.文件的读取:

import jxl.*;
import jxl.read.biff.BiffException;
import java.io.*;
public class ReadExcel {
    public static void main(String[] args) throws BiffException, IOException {
        Workbook book = Workbook.getWorkbook(new File("Test.xls"));
        //获得第一个工作表对象  
        Sheet sheet = book.getSheet("sheet_one");
        //Sheet sheet = book.getSheet(0);
        int rows = sheet.getRows();
        int cols = sheet.getColumns();
        System.out.println("总列数:" + cols);
        System.out.println("总行数:" + rows);
        System.out.println("----------------------------");    
        int i=0;
        int j=0;
        //循环读取数据
        for(i=0;i<cols;i++)
        {
            for(j=0;j<rows;j++)
            {
                System.out.println("第"+j+"行,第"+i+"列为:"+sheet.getCell(i, j).getContents());
            }  
        }
    }
}

3.文件的修改:

import jxl.*;
import java.io.*;
import jxl.read.biff.BiffException;
import jxl.write.*;
import jxl.write.biff.RowsExceededException;
public class UpdateExcel {
    public static void main(String[] args) throws BiffException, IOException, RowsExceededException, WriteException{
         //获得文件    
        Workbook wb = Workbook.getWorkbook(new File ("Test.xls"));       
        //打开一个文件的副本,并且指定数据写回到原文件
        WritableWorkbook book = Workbook.createWorkbook(new File ("Test.xls"), wb);       
         //添加一个工作表 
        WritableSheet sheet = book.createSheet("sheet_two", 1);       
        sheet.addCell(new Label(0,0,"Test data for sheet_two"));        
        //输出
        System.out.println(sheet.getCell(0, 0).getContents());    
        book.write();
        book.close();   
    }
}