如题,使用poi组件实现上述功能,控制输入为日期格式、下拉框选择、限制输入的数据大小等等如下代码,参考资料地址:http://www.iteye.com/problems/65191,想要说明的是原文对于设置的范围的参数解释是错误的:4个参数依次应该代表为:开始行、结束行、开始列、结束列:

package com.rmsClient.util;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import org.apache.poi.hssf.usermodel.DVConstraint;

import org.apache.poi.hssf.usermodel.HSSFDataValidation;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.util.CellRangeAddressList;

/**

* 从数据库中读取工资的字段,然后动态生成excel模板

*

* @author qiulinhe

*

* 2017年2月20日 下午5:41:35

*/

public class ExcelOutputUtil {

public static void main(String[] args) {

FileOutputStream out = null;

try {

// excel对象

HSSFWorkbook wb = new HSSFWorkbook();

// sheet对象

HSSFSheet sheet = wb.createSheet("sheet1");

// 输出excel对象

out = new FileOutputStream("D://ceshi.xls");

// 取得规则

// HSSFDataValidation validateData =

// ExcelOutputUtil.setValidate((short) 1, (short) 1, (short) 4,

// (short) 4);

// HSSFDataValidation validate = ExcelOutputUtil.setBoxs();

HSSFDataValidation dateVa = ExcelOutputUtil.setDate();

// 设定规则

// sheet.addValidationData(validate);

// sheet.addValidationData(validateData);

sheet.addValidationData(dateVa);

// 输出excel

wb.write(out);

out.close();

System.out.println("在D盘成功生成了excel,请去查看");

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (out != null) {

try {

out.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

// 数字大小控制:设置单元格只能在1-20之间

public static HSSFDataValidation setValidate(short firstRow, short lastRow, short firstCol, short lastCol) {

// 创建一个规则:1-100的数字

DVConstraint constraint = DVConstraint.createNumericConstraint(DVConstraint.ValidationType.INTEGER,

DVConstraint.OperatorType.BETWEEN, "1", "20");

// 设定在哪个单元格生效

CellRangeAddressList regions = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);

// 创建规则对象

HSSFDataValidation ret = new HSSFDataValidation(regions, constraint);

return ret;

}

// 下拉框限制

public static HSSFDataValidation setBoxs() {

CellRangeAddressList addressList = new CellRangeAddressList(0, 0, 0, 0);

final String[] DATA_LIST = new String[] { "男", "女", };

DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(DATA_LIST);

HSSFDataValidation dataValidation = new HSSFDataValidation(addressList, dvConstraint);

dataValidation.setSuppressDropDownArrow(false);

dataValidation.createPromptBox("输入提示", "请从下拉列表中选择男女");

dataValidation.setShowPromptBox(true);

return dataValidation;

}

// 日期格式限制

public static HSSFDataValidation setDate() {

CellRangeAddressList addressList = new CellRangeAddressList(0, 1, 0, 2);

DVConstraint dvConstraint = DVConstraint.createDateConstraint(DVConstraint.OperatorType.BETWEEN, "1900-01-01",

"5000-01-01", "yyyy-mm-dd");

HSSFDataValidation dataValidation = new HSSFDataValidation(addressList, dvConstraint);

dataValidation.setSuppressDropDownArrow(false);

dataValidation.createPromptBox("输入提示", "请填写日期格式");

// 设置输入错误提示信息

dataValidation.createErrorBox("日期格式错误提示", "你输入的日期格式不符合'yyyy-mm-dd'格式规范,请重新输入!");

dataValidation.setShowPromptBox(true);

return dataValidation;

}

}

这样就可以控制生成的excel的第二行第二列只能输入1-20的数据:

java poi导出excel模板_Java poi实现导出excel,添加数据有效性,生成模板相关推荐

  1. java io导出excel表格_Java IO 导入导出Excel表格

    1.将excel导入到内存 1. 调用工作簿Workbook的静态方法getWorkbook(),获得工作簿Workbook对象 InputStream in = new FileInputStrea ...

  2. java导出复杂excel表格_java使用freemarker导出复杂的excel表格

    正常导出excel表格使用的poi,但是导出复杂的excel有点困难,但是可以使用freemaker模板来导出复杂的excel. 都是先生成一个Excel表格的模板,最好是增加一行数据.具体看图里面的 ...

  3. java poi 读取 word图片_Java Poi 根据文字内容 插入 word 图片-Go语言中文社区

    需求描述 如下图,我需要在word里根据一个图片的名字,将名字替换成该图片(公章) 思路: 用POI遍历每一个表格里的每一行的每一个单元格,如果遇到我自己定义的"&章",则 ...

  4. java word上传下载_java poi 上传与下载word文件

    java编程要实现对word的操作没有vb那种编程语言来得容易,得借助一些开源组件,其中就包括jacob.poi等, 而poi应用得最为广泛,对word2003和2007的读和写word操作都十分方便 ...

  5. java操作mysql导表_Java实现批量导入excel表格数据到数据库中的方法

    本文实例讲述了Java实现批量导入excel表格数据到数据库中的方法.分享给大家供大家参考,具体如下: 1.创建导入抽象类 package com.gcloud.common.excel; impor ...

  6. java导出excel 客户端_Java poi导出Excel下载到客户端

    Java poi 导出Excel并下载到客户端,具体内容如下 Maven配置,包含了其他文件格式的依赖,就全贴出来了 org.apache.poi poi-excelant 3.12 org.apac ...

  7. java 导出批量图片_Java Poi 导出excel(含图片及多个sheet)

    因为之前做的导出都是导出数据的基本信息不含图片的那种,一直也没做过导出图片的excel,正好这两天做这个需求就做了一个,好 废话不多说,直接上图 ,因为我这边是根据模板导出数据 先看下模板 然后上代码 ...

  8. java poi excel 图表_java poi导出带图表的excel表格

    1 /** 2 *导出综合得分统计3 *@paramfileName4 *@paramrequest5 *@paramresponse6 *@paramheadInfo7 *@paramdataLis ...

  9. java poi生成excel文件_java poi 导出Excel文件

    1,导包  poi-3.9-XXX.JAR 2, 创建一个实体对象 public class Student implements Serializable { /** * */ private st ...

  10. java读取合并单元格_Java POI常用方法,读取单元格的值,设置单元格格式,合并单元格,获取已合并的单元格,导出至本地等...

    一.设置单元格格式. 设置单元格边框.单元格背景颜色.单元格对齐方式.单元格字体,设置自动换行. /** Description: 设置单元格格式. * @author : ys. * @date : ...

最新文章

  1. 痞子衡嵌入式:常用的数据差错控制技术(2)- 奇偶校验(Parity Check)
  2. Android --- GridLayoutManager 设置了 item 均匀分布,但是无效
  3. Apache Flink 1.10.0 发布 | 云原生生态周报 Vol. 38
  4. Opencv3编程入门学习笔记(五)之通道分离(split)与合并(merge)
  5. 2020.2idea创建web_使用IDEA配置Tomcat(亲测成功)
  6. [RBA开发系列一] 建立http 请求的process
  7. php数量百分比,mysql PHP行数+百分比
  8. zabbix 邮件报警 监控mysql主从
  9. python13文件_python中13个实用的文件操作
  10. 远程控制电脑的实现方法汇总
  11. 评价——TOPSIS
  12. ajax点击事件click触发两次,jQuery点击click触发两次事件解决办法
  13. Win7 安装.Net 4.7.2 失败
  14. Verilog语言入门学习(1)
  15. Provision not found. A provision is required for deploying your app to the device. 解决方案
  16. 特斯拉中国召回近5万辆Model S和X,美国法务:中国驾驶员使用不当-1
  17. 试着用markdown
  18. [Java]JDK1.7中HashMap的并发死链
  19. 图解 Vue3.0 编译器核心原理(Vue3.0源码解析)
  20. Windows10更新后打开word是写字板形式解决方法

热门文章

  1. Linux命令_搜索文件
  2. 【动态规划】最大子段和问题,最大子矩阵和问题,最大m子段和问题
  3. Object-C 语法 字符串 数组 字典 和常用函数 学习笔记
  4. HDU 5820 Lights(扫描线+zkw线段树)
  5. (转)ZooKeeper伪分布式集群安装及使用
  6. linux下python、django框架的配置
  7. 孙鑫VC学习笔记:第十五讲 (三) 增加互斥条件实现线程同步
  8. python读取文件路径报invalid_Python 解决OPEN读文件报错 ,路径以及r的问题
  9. 拓端tecdat|R语言动态可视化:制作历史全球平均温度的累积动态折线图动画gif视频图
  10. 【大数据部落】基于R的FP树fp growth 关联数据挖掘技术在煤矿隐患管理