Java数据持久化->Excel文件
作者:强哥   类别:Java开发    日期:2018-08-30 11:07:34    阅读:2683 次   消耗积分:0 分




实验简介



Excel文件是比较常用的一种数据存储格式,通过标准的行列式二维表的形式来进行存储。其实熟悉了Excel表格的数据格式,我们对后续操作XML,操作数据库等均有了基础。





实验目的




1.掌握使用jxl组件对Excel进行读写。





实验流程




1.下载jxl的 jar包。


http://www.manyjar.com 搜索jxl,下载即可。jar包是一个压缩文件,通常用于发布java的.class二进制文件(即源代码编译过后的字节码文件,是可以直接运行的文件)。通常第三方组件的发布使用jar文件,我们自己的源代码,也可以导入为jar文件供别人使用,我们可以选择将源代码一直导出或者只导出编译过后的字节码文件,用于保护自己源代码的版权。


2.在项目中引入jar包。


(1).在JavaCore项目根目录下,创建一个目录:lib,用于保存所有第三方的jar包。

(2).将上述下载回来的jar文件复制到lib目录下,笔者导入的jar包版本为:jxl-2.6.12.jar。

(3).在Eclipse中,在项目JavaCore上右键,点击“Refresh”刷新目录结构,确保lib目录中的jar文件出现在项目目录中。

(4).在项目JavaCore上右键,点击“Properties”,打开项目属性对话框,进入“Java Build Path”节点。进入到“Libraries”标签页。

(5) 点击“Add Jar”按钮,浏览到对应的jar文件,点击“确定”即可。


20180830_110315_265.png



3.准备一个Excel文件。


我们同样在项目的data目录下准备一个标准的二维Excel表格数据,保存为Studets.xls,内容如下:


20180830_112730_989.jpg



4.使用jxl读取Excel


需要导入的包如下:

import jxl.Cell;

import jxl.Sheet;

import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;


读取Excel,遍历整个数据的代码:

// 遍历整个表格的内容并将其按原格式输出

public void readExcelByJxl(String fileName){

File file = new File(fileName);

    try{

        FileInputStream fis = new FileInputStream(file);

        jxl.Workbook rwb = Workbook.getWorkbook(fis);

        // 获取到Excel中所有的Sheet

        Sheet[] sheet = rwb.getSheets();

        for (int i = 0; i < sheet.length; i++) {

         // 获取到当前的Sheet

            Sheet rs = rwb.getSheet(i);

            // 遍历当前Sheet中的行

            for (int j = 0; j < rs.getRows(); j++) {   

               Cell[] cells = rs.getRow(j);   

               // 遍历当前行中的每一列

               for(int k=0;k<cells.length;k++) {

                System.out.print(cells[k].getContents());

                System.out.print("\t");

               }

               System.out.println();

            }

        }   

        fis.close();

    }catch(Exception e){

        e.printStackTrace();

    }

}


调用代码:

public static void main(String[] args) {

ExcelReadWrite erw = new ExcelReadWrite();

String path = System.getProperty("user.dir");

erw.readExcelByJxl(path + "\\data\\Students.xls");

}


5.使用jxl写入Excel。


// 创建一张Excel表格

private void writeExcelByJxl(){

    WritableWorkbook book = null;

    String info[] = {"序号","学号","姓名","性别","年龄","学历","学校"};

    try{

     // 创建一个Excel表格

     String fileName = System.getProperty("user.dir") +

"\\data\\NewStudents.xls";

        book = Workbook.createWorkbook(new File(fileName));

        

        // 创建一张Sheet,或者使用book.getSheet(i)取得一张现有的Sheet

        WritableSheet sheet = book.createSheet("NewStudents.xls", 0);

        

        // 添加表头

        for(int j=0;j<7;j++){

            Label label = new Label(j, 0, info[j]);

            sheet.addCell(label);

        }

     

        // 为表格添加一条新的记录

        sheet.addCell(new Label(0, 1, "1"));

        sheet.addCell(new Label(1, 1, "WNCD201703015"));

        sheet.addCell(new Label(2, 1, "敬越"));

        sheet.addCell(new Label(3, 1, "男"));

        sheet.addCell(new Label(4, 1, "24"));

        sheet.addCell(new Label(5, 1, "本科"));

        sheet.addCell(new Label(6, 1, "电子科技大学成都学院"));

        

        // 写入数据并关闭文件

        book.write();

        book.close();

    } catch (Exception e) {

        e.printStackTrace();

    }

}


6.使用jxl修改Excel。


修改的操作与写入的操作非常类似,只是打开文件的方式不同而已。如下下述代码,修改Students.xls这张表格的第3行第6列的值。

private void modifyExcelByJxl(){

    try{

       String fileName = System.getProperty("user.dir") +

"\\data\\Students.xls";

         //获得Excel文件

       Workbook wb = Workbook.getWorkbook(new File(fileName));

        //打开一个文件副本,并且指定数据写回到原文件

        WritableWorkbook book = Workbook.createWorkbook(new File(fileName),

wb);

        //打开目标Sheet

        WritableSheet sheet = book.getSheet(0);

        sheet.addCell(new Label(5, 3, "研究生"));

        // 写入数据并关闭文件

        book.write();

        book.close();

    } catch (Exception e) {

        e.printStackTrace();

    }

}




思考练习



1.利用jxl操作Excel完成WoniuATM的用户注册与登录验证。


2.自学使用poi组件完成对Excel的操作。





为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。


20181009_153045_341.jpg




   
版权所有,转载本站文章请注明出处:蜗牛笔记, http://www.woniunote.com/article/181
上一篇: 两次辍学,30岁转行学测试,高薪入职一家业内超牛逼的公司!
下一篇: 09年毕业,机械制造转行软件测试,入职月薪7K
提示:登录后添加有效评论可享受积分哦!
最新文章
    最多阅读
      特别推荐
      回到顶部