利用java jxl 创建,读取,更新excel文档

用JAVA 读写 EXCEL,在网上查看,很多人会用 POI 方式,个人试用结果,感觉并不是那么好用。

其实还有一个组件,jxl ,用 jxl 也可以很方便的完成 excel 文档的读写操作。

jxl 的下载地址: http://www.andykhan.com/jexcelapi/index.html

将下载的JAR 包添加到工程的path中。然后就可以写测试程序了

1. 生成一个excel文档

2. 读取excel文档内容

3. 更新excel文档内容

各自源代码如下:

java jxl 生成EXCEL文档:
程序代码 程序代码

import java.io.*;
import jxl.*;
import jxl.write.*;

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


java jxl 更新Excel 文档
程序代码 程序代码

import java.io.*;

import jxl.*;
import jxl.read.biff.BiffException;
import jxl.write.*;

public class UpdateXLS {
    public static void write()throws Exception{
        WritableWorkbook wwb=Workbook.createWorkbook(new File("c:/1.xls"));
        WritableSheet ws=wwb.createSheet("Test Sheet 1",0);
        File file=new File("C:\\jbproject\\PVS\\WebRoot\\weekhit\\1109496996281.png");
        WritableImage image=new WritableImage(1, 4, 6, 18,file);
        ws.addImage(image);
        wwb.write();
        wwb.close();
    }
    
    
    public static void main(String args[]) throws BiffException, IOException {
        try {
            // Excel获得文件
            Workbook wb = Workbook.getWorkbook(new File("测试.xls"));
            // 打开一个文件的副本,并且指定数据写回到原文件
            WritableWorkbook book = Workbook.createWorkbook(new File("测试.xls"),
                    wb);
            // 添加一个工作表
            WritableSheet sheet = book.createSheet("第二页", 1);
            sheet.addCell(new Label(0, 0, "第二页的测试数据"));
            book.write();
            book.close();
            System.out.print("数据已更新!");
            
            
            WritableFont font1= new WritableFont(WritableFont.TIMES,16,WritableFont.BOLD);
            //设置字体格式为excel支持的格式
            WritableFont font3=new WritableFont(WritableFont.createFont("楷体_GB2312"),12,WritableFont.NO_BOLD );
             WritableCellFormat format1=new WritableCellFormat(font1);
             Label label=new Label(0,0,"data 4 test",format1);
//             ①指定了字串格式:字体为TIMES,字号16,加粗显示。WritableFont有非常丰富的构造子,供不同情况下使用,
//             jExcelAPI的java-doc中有详细列表,这里不再列出。
//             ②处代码使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元格的各种属性,后面的单元格格式化中会有更多描述。
//             ③处使用了Label类的构造子,指定了字串被赋予那种格式。 在WritableCellFormat类中,还有一个很重要的方法是指定数据的对齐
//             方式,比如针对我们上面的实例,可以指定:

                //把水平对齐方式指定为居中

                format1.setAlignment(jxl.format.Alignment.CENTRE);

                //把垂直对齐方式指定为居中

                format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

                //设置自动换行
                format1.setWrap(true);

        
        } catch (Exception e) {
            System.out.println(e);
        }
        
        
        
        
        String path="c:\\excel.xls";//Excel文件URL
        InputStream is = new FileInputStream(path);//写入到FileInputStream
        jxl.Workbook wb = Workbook.getWorkbook(is); //得到工作薄
        jxl.Sheet st = wb.getSheet(0);//得到工作薄中的第一个工作表
        Cell cell=st.getCell(0,0);//得到工作表的第一个单元格,即A1
        String content=cell.getContents();//getContents()将Cell中的字符转为字符串
        wb.close();//关闭工作薄
        is.close();//关闭输入流

    }
}


java jxl 读取 excel
程序代码 程序代码

import java.io.*;
import jxl.*;

public class ReadXLS {
    public static void main(String args[]) {
        try {
            Workbook book = Workbook.getWorkbook(new File("测试.xls"));
            // 获得第一个工作表对象
            Sheet sheet = book.getSheet(0);
            // 得到第一列第一行的单元格
            Cell cell1 = sheet.getCell(0, 0);
            String result = cell1.getContents();
            System.out.println(result);
            Cell cell2= sheet.getCell(1, 0);
            String result1= cell2.getContents();
            System.out.println(result1);
            book.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}



除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.