Java通过POI为Excel添加数据验证

String path = "d:\\success.xlsx";
        String sheetName = "sheetlist";

        XSSFWorkbook wb = null;
        XSSFSheet sheetlist = null;

        File inputFile = new File(path);
        if (inputFile.exists()) {
            wb = new XSSFWorkbook(new FileInputStream(path));
        } else {
            wb = new XSSFWorkbook();// excel文件对象
        }

        if (wb.getSheet(sheetName) == null) {
            sheetlist = wb.createSheet(sheetName);// 工作表对象
        } else {
            sheetlist = wb.getSheet(sheetName);// 工作表对象
        }

        DataValidationHelper helper = sheetlist.getDataValidationHelper();

        List<XSSFDataValidation> dataValidations = sheetlist.getDataValidations();
        for (XSSFDataValidation dv : dataValidations) {
            // 已有的验证
        }

        //
        CellRangeAddressList dstAddrList = new CellRangeAddressList(0, 500, 0, 0);// 规则一单元格范围
        String[] textlist = { "列表1", "列表2", "列表3", "列表4", "列表5" };
        DataValidation dstDataValidation = helper.createValidation(helper.createExplicitListConstraint(textlist),
                dstAddrList);
        dstDataValidation.createPromptBox("提示头", "提示内容");
        dstDataValidation.setShowErrorBox(true);
        dstDataValidation.setShowPromptBox(true);
        dstDataValidation.setEmptyCellAllowed(false);
        sheetlist.addValidationData(dstDataValidation);

        CellRangeAddressList dstAddrList2 = new CellRangeAddressList(0, 500, 1, 1);// 规则二单元格范围
        DataValidationConstraint dvc = helper.createNumericConstraint(DVConstraint.ValidationType.INTEGER,
                DVConstraint.OperatorType.BETWEEN, "0", "9999999999");
        DataValidation dstDataValidation2 = helper.createValidation(dvc, dstAddrList2);
        dstDataValidation2.createErrorBox("填错输啦!", "只能填那个啥啥啥");
        dstDataValidation2.setEmptyCellAllowed(false);
        dstDataValidation2.setShowErrorBox(true);

        sheetlist.addValidationData(dstDataValidation2);

        FileOutputStream out = new FileOutputStream(path);
        wb.write(out);
        out.close();
时间: 2024-10-06 08:24:41

Java通过POI为Excel添加数据验证的相关文章

Java通过POI技术操作Excel(3)----数据导出

在之前的博客中,总结了Excel模板生成和Excel数据录入,然后剩最后一个模块,数据库中数据读取,在之前的基础上我们来看这一模块,应该已经非常容易了,接下来简单的介绍一下: 这里我们仍然以jsp+servlet为例,对SqlServer2005数据库进行操作,如下都是基本步骤: 1.连接数据库:2.根据sql语句获取数据库中值:3.将值进行导出操作: 首先,我们来记性数据库的连接,这个相信接触过java的人都不会陌生,我就不赘述了 1 public class DataBase { 2 pri

POI实现excel的数据验证

目录 前言 难点1:合并单元格 代码实现策略: step 1: 合并单元格 step 2: 给单元格赋值 难点2:数据验证-下拉框 代码实现策略: step 1:设置需要进行数据验证的单元格范围和可供选择的值 step 2:给当前sheet添加数据验证 难点3:数据验证-某列保证唯一性 代码实现策略: step 1:设置需要进行数据验证的单元格范围 step 2:给当前sheet添加数据验证 前言 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Mi

java通过POI技术操作Excel(2)----模板读取,录入数据

先来回顾下通常把java对Excel的操作分为以下功能:1.生成模板,导出模板:2.填充模板,录入数据:3:读取数据库数据,导出数据:在上一篇博文中,我简单记录了模板生成和导出,在这篇博文中,主要来记录--Excel文件导入,数据录入(仍然是以jsp+servlet为例) 既然要解决这个问题,那首先来分析下我们需要面对的有哪些需求需要实现: 1.Excel文件导入(这是最基础的,巧妇难为无米之炊,导入环节也是查了好久才完成的); 2.Excel文件中数据的格式判定,你要读取文件,如果文件中其实没

java使用POI实现excel文件的读取,兼容后缀名xls和xlsx

需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </depen

JAVA关于POI导出Excel内存溢出的解决方案

JAVA关于POI导出Excel内存溢出的解决方案 在我们使用JAVA开发过程中,经常要导出查询获得的数据,这些数据一般情况下都是以Excel存储的,因此我们在导出数据的时候要使用JAVA的POI库,其主要是对各种windows平台的数据格式进行操作,在这里,我们是对Excel操作. 生成Excel的过程原理是这样的,首先,我们对数据库进行查询,获取相应的结果集,一般是list集合,然后生成Workbook对象,根据生成的Workbook对象获取sheet对象,根据此sheet对象获取Row对象

JAVA使用POI获取Excel的列数与行数

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能. 下面这篇文章给大家介绍了JAVA使用POI获取Excel列数和行数的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧. 前言 报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑.Java程序由于其跨平台特性,不能直接操纵Excel.因此,本文探讨一下POI视线Java程序

JAVA使用POI操作excel

这里提一下,java操作excel的组件除了apache的poi,还有jexcelapi(jxl),其中poi组件的获取地址为poi.apache.org. poi组件中常用的类有HSSFworkbook表示一个完整的excel表格,HSSFsheet表示excel中的一个工作薄,HSSFRow表示工作薄中的一行,HSSFCell表示一个单元格 下面是一个简单的写入的demo public static void main(String [] args){ try { HSSFWorkbook

Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)

ava 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包) 假设现在要做一个通用的导入方法: 要求: 1.xml的只定义数据库表中的column字段,字段类型,是否非空等条件. 2.excel定义成模板,里面只填写了所需要的数据,有可能数据有问题. 3.在导入的时候就需要对每个excel单元格的数据进行验证. 4.验证完之后,若所有数据正确,那么批量保存.若有一点点错误,就不执行保存操作,并提示错误原因. 思路: 1.完美使用了Map的功能,先将xml中的数据存入map

java中使用poi导出excel表格数据并且可以手动修改导出路径

在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下 jar包下载路径:http://download.csdn.net/download/pumpkin09/7077011 第二步:添加poi导出工具类 1 package com.yjd.admin.util; 2 3 import java.io.IOException; 4 import ja