纳税服务系统二(用户模块)【POI、用户唯一性校验】(一)

简介: 用户模块:本文主要的知识点有以下:使用POI来操作Excel,对数据进行导入和导出对用户进行唯一性校验,不能同时出现相同的用户

前言


用户模块:本文主要的知识点有以下:

  • 使用POI来操作Excel,对数据进行导入和导出
  • 对用户进行唯一性校验,不能同时出现相同的用户


POI基础


再次回到我们的用户模块上,我们发现还有两个功能没有完成:

3.jpg这里写图片描述

对于将网页中的数据导入或导出到excel文件中,我们是完全没有学习过的。但是呢,在Java中操作excel是相对常用的,因此也有组件供我们使用

JAVA中操作Excel的有两种比较主流的工具包

  • JXL
  • POI

这次我们主要学习的是POI操作excel。

JXL有一个缺陷,只能操作03或以前版本的excel,而POI可以操作97-07版本的。


面向对象看excel


首先,要用Java来操作excel的话,肯定用对象来指定excel相关的内容的。我们来看看excel由什么组成:

4.jpg这里写图片描述

POI是这样看的:

  • 整个excel称作为工作薄
  • 工作薄下可以创建很多张表,称作为工作表
  • 工作表有非常多的行
  • 行又可细分单元格【指定行的列就可以定位到工作表任意的位置了】

给我们一顿分析以后,我们发现它们之间是有从属关系的:

  • 工作表从属于工作薄
  • 行从属于工作表
  • 单元格从属于行

5.jpg




操作Excel步骤


导入POI开发包:

  • poi-ooxml-3.10.1-20140818.jar,
  • poi-ooxml-schemas-3.10.1-20140818.jar,
  • 以及复制在ooxml-lib目录下的xmlbeans-2.6.0.jar,dom4j-1.6.1.jar【dom4j一般在项目导入的时候已经存在了】。
  • poi-ooxml-3.11-20141221.jar


/**
 * 使用POI1无非操作Excel无非就4个步骤:
 *
 * 创建/读取工作薄
 * 创建/读取工作表
 * 创建/读取行
 * 创建/读取单元格
 *
 *
 * */


创建Excel并写入数据


@Test
    public void testWrite() throws IOException {
        //创建工作薄
        HSSFWorkbook workbook = new HSSFWorkbook();
        //创建工作表
        HSSFSheet sheet = workbook.createSheet("我是新的工作表");
        //创建行,坐标从0开始,我创建的是第三行
        HSSFRow row = sheet.createRow(2);
        //创建单元格,坐标也是从0开始,于是就是第三行第三列
        HSSFCell cell = row.createCell(2);
        //往单元格写数据
        cell.setCellValue("helloWorld");
        //把工作薄写到硬盘中
        FileOutputStream outputStream = new FileOutputStream("C:\\工作薄.xls");
        workbook.write(outputStream);
        //关闭流
        workbook.close();
        outputStream.close();
    }

6.jpg这里写图片描述7.jpg这里写图片描述



读取Excel的数据


@Test
    public void testRead() throws IOException {
        //获取输入流,读取Excel数据
        FileInputStream inputStream = new FileInputStream("C:\\工作薄.xls");
        //创建工作薄
        HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
        //得到工作表
        HSSFSheet sheet = workbook.getSheetAt(0);
        //得到行
        HSSFRow row = sheet.getRow(2);
        //得到单元格
        HSSFCell cell = row.getCell(2);
        //得到单元格的数据
        String cellValue = cell.getStringCellValue();
        System.out.println(cellValue);
    }

8.jpg这里写图片描述9.jpg这里写图片描述



03与07版本

  • 03版本使用的是HSSFWorkbook这么一个类来操作03的Excel数据
  • 07版本使用的是XSSFWorkbook这么一个类来操作07的Excel数据

其实他们的方法都是一样的,仅仅是类的不同。而使用哪个对象,我们可以根据后缀名来判断创建哪个对象【是03还是07】


@Test
    public void testRead03And07Excel() throws Exception {
        String fileName = "D:\\itcast\\测试.xlsx";
        if(fileName.matches("^.+\\.(?i)((xls)|(xlsx))$")){//判断是否excel文档
            boolean is03Excel = fileName.matches("^.+\\.(?i)(xls)$");
            FileInputStream inputStream = new FileInputStream(fileName);
            //1、读取工作簿
            Workbook workbook = is03Excel ?new HSSFWorkbook(inputStream):new XSSFWorkbook(inputStream);
            //2、读取第一个工作表
            Sheet sheet = workbook.getSheetAt(0);
            //3、读取行;读取第3行
            Row row = sheet.getRow(2);
            //4、读取单元格;读取第3行第3列
            Cell cell = row.getCell(2);
            System.out.println("第3行第3列单元格的内容为:" + cell.getStringCellValue());
            workbook.close();
            inputStream.close();
        }
    }


目录
相关文章
|
5月前
|
Java 数据安全/隐私保护 uml
某系统提供了用户信息操作模块,用户可以修改自己的各项信息。为了使操作过程更加人性化,现使用备忘录模式对系统进行改进,使得用户在进行了错误操作之后可以恢复到操作之前的状态。用户信息中包含账号、密码、电话
该博客文章通过Java代码示例介绍了备忘录模式(Memento Pattern)的应用,通过创建备忘录对象保存用户信息的状态,允许用户在进行错误操作后能够恢复到之前的状态。
某系统提供了用户信息操作模块,用户可以修改自己的各项信息。为了使操作过程更加人性化,现使用备忘录模式对系统进行改进,使得用户在进行了错误操作之后可以恢复到操作之前的状态。用户信息中包含账号、密码、电话
|
7月前
|
数据处理 数据安全/隐私保护
JeecgBoot 中如何对敏感信息进行脱敏处理?
数据脱敏即将一些敏感信息通过加密、格式化等方式处理,展示给用户一个新的或是格式化后的信息,避免了敏感信息的暴露。
72 1
|
7月前
索葛售票系统使用步骤--交易查询
索葛售票系统使用步骤--交易查询
TienChin 渠道管理-配置校验失败信息
TienChin 渠道管理-配置校验失败信息
55 0
TienChin 渠道管理-配置校验失败信息
|
前端开发 JavaScript Java
纳税服务系统二(用户模块)【POI、用户唯一性校验】(三)
用户模块:本文主要的知识点有以下: 使用POI来操作Excel,对数据进行导入和导出 对用户进行唯一性校验,不能同时出现相同的用户
239 0
纳税服务系统二(用户模块)【POI、用户唯一性校验】(三)
|
存储 前端开发 数据库
纳税服务系统二(用户模块)【POI、用户唯一性校验】(二)
用户模块:本文主要的知识点有以下: 使用POI来操作Excel,对数据进行导入和导出 对用户进行唯一性校验,不能同时出现相同的用户
159 0
纳税服务系统二(用户模块)【POI、用户唯一性校验】(二)
|
Java 网络安全
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(二)
为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。
171 0
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(二)
|
JavaScript Java 网络安全
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(三)
为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。
191 0
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(三)
|
XML Java 网络安全
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(一)
为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。
133 0
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(一)