返回顶部
首页 > 资讯 > 精选 >Java怎么导出Excel增加下拉框选项
  • 628
分享到

Java怎么导出Excel增加下拉框选项

2023-06-30 11:06:01 628人浏览 八月长安
摘要

今天小编给大家分享一下Java怎么导出excel增加下拉框选项的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。excel对于下

今天小编给大家分享一下Java怎么导出excel增加下拉框选项的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

excel对于下拉框较多选项的,需要使用隐藏工作簿来解决,使用函数取值来做选项

选项较少(一般少于5个):

private static DataValidation setFewDataValidation(Sheet sheet, String[] textList, int firstRow, int endRow, int firstCol, int endCol) {    DataValidationHelper helper = sheet.getDataValidationHelper();    //加载下拉列表内容    DataValidationConstraint constraint = helper.createExplicitListConstraint(textList);    constraint.setExplicitListValues(textList);    //设置数据有效性加载在哪个单元格上。四个参数分别是:起始行、终止行、起始列、终止列    CellRangeAddressList regions = new CellRangeAddressList((short) firstRow, (short) endRow, (short) firstCol, (short) endCol);    //数据有效性对象    return helper.createValidation(constraint, regions);}

选项较多

创建隐藏工作簿:

Sheet sheetHidden = wb.createSheet("Sheet2");wb.setSheetHidden(1, true);

每一个列表占用一列

当然也可以每个列表使用一张工作簿,只用第一列。 这里是使用一个工作簿使用每个列,先26个字母,一般够用了

String[] arr = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
for (int j = 0; j < dataList.size(); j++) {    if (index == 0) { //第1个下拉选项,直接创建行、列        row = sheetHidden.createRow(j); //创建数据行        //      sheetHidden.setColumnWidth(j, 4000); //设置每列的列宽        row.createCell(0).setCellValue(dataList.get(j)); //设置对应单元格的值    } else { //非第1个下拉选项        int rowCount = sheetHidden.getLastRowNum();        if (j <= rowCount) { //前面创建过的行,直接获取行,创建列            //获取行,创建列            sheetHidden.getRow(j).createCell(index).setCellValue(dataList.get(j)); //设置对应单元格的值        } else { //未创建过的行,直接创建行、创建列            //  sheetHidden.setColumnWidth(j, 4000); //设置每列的列宽            //创建行、创建列            sheetHidden.createRow(j).createCell(index).setCellValue(dataList.get(j)); //设置对应单元格的值        }    }}

index 代表第几个下拉框,也就是在隐藏工作簿的第几列,dataList表示下拉框的内容

创建公式:

String strFORMula = "Sheet2!$" + arr[index] + "$1:$" + arr[index] + "$" + dataList.size();

Sheet2第A1到A5000作为下拉列表来源数据

xls和xlsx生成下拉框的选项不一样

private static DataValidation setMoreDataValidation(Workbook wb, Sheet sheet, String strFormula, int startRow, int endRow, int startColumn, int endColumn) {    DataValidation dataValidation;    // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列    CellRangeAddressList regions = new CellRangeAddressList(startRow, endRow, startColumn, endColumn);    if (wb instanceof XSSFWorkbook) {        //获取新sheet页内容        XSSFDataValidationConstraint constraint = new XSSFDataValidationConstraint(DataValidationConstraint.ValidationType.LIST, strFormula);        // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列        // 数据有效性对象        DataValidationHelper help = new XSSFDataValidationHelper((XSSFSheet) sheet);        dataValidation = help.createValidation(constraint, regions);        dataValidation.setSuppressDropDownArrow(true);        dataValidation.setShowErrorBox(true);    } else {        // 设置数据有效性加载在哪个单元格上。四个参数分别是:起始行、终止行、起始列、终止列        DVConstraint constraint = DVConstraint.createFormulaListConstraint(strFormula);        dataValidation = new HSSFDataValidation(regions, constraint);        dataValidation.setSuppressDropDownArrow(false);    }    dataValidation.setEmptyCellAllowed(true);    dataValidation.setShowPromptBox(true);    dataValidation.createErrorBox("Error", "请选择下拉框中的数据");    dataValidation.createPromptBox("提示", "只能选择下拉框里面的数据");    return dataValidation;}

加入工作簿:

sheet.addValidationData()

完整代码:

private static void setValidationDate(Workbook wb, Sheet sheet, List<DataValidationCell> dataValidationCellList) {    if (dataValidationCellList.isEmpty()) {        return;    }    String[] arr = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};    int index = 0;    Row row;    Sheet sheetHidden = wb.createSheet("Sheet2");    wb.setSheetHidden(1, true);    for (DataValidationCell dataValidationCell : dataValidationCellList) {        List<String> dataList = dataValidationCell.getDataList();        if (CollectionUtils.isEmpty(dataList)) {            continue;        }        if (dataList.size() <= 5) {            sheet.addValidationData(setFewDataValidation(sheet, dataList.toArray(new String[0]),                    dataValidationCell.getStartRow(), dataValidationCell.getEndRow(),                    dataValidationCell.getStartColumn(), dataValidationCell.getEndColumn())); //超过255个报错        } else {            //String strFormula = "Sheet2!$A$1:$A$5000" ; //Sheet2第A1到A5000作为下拉列表来源数据            String strFormula = "Sheet2!$" + arr[index] + "$1:$" + arr[index] + "$" + dataList.size(); //Sheet2第A1到A5000作为下拉列表来源数据            sheet.addValidationData(setMoreDataValidation(wb, sheet, strFormula,                    dataValidationCell.getStartRow(), dataValidationCell.getEndRow(),                    dataValidationCell.getStartColumn(), dataValidationCell.getEndColumn())); //下拉列表元素很多的情况            //2、生成sheet2内容            for (int j = 0; j < dataList.size(); j++) {                if (index == 0) { //第1个下拉选项,直接创建行、列                    row = sheetHidden.createRow(j); //创建数据行                    //      sheetHidden.setColumnWidth(j, 4000); //设置每列的列宽                    row.createCell(0).setCellValue(dataList.get(j)); //设置对应单元格的值                } else { //非第1个下拉选项                    int rowCount = sheetHidden.getLastRowNum();                    if (j <= rowCount) { //前面创建过的行,直接获取行,创建列                        //获取行,创建列                        sheetHidden.getRow(j).createCell(index).setCellValue(dataList.get(j)); //设置对应单元格的值                    } else { //未创建过的行,直接创建行、创建列                        //  sheetHidden.setColumnWidth(j, 4000); //设置每列的列宽                        //创建行、创建列                        sheetHidden.createRow(j).createCell(index).setCellValue(dataList.get(j)); //设置对应单元格的值                    }                }            }            index++;        }    }}
public static class DataValidationCell{    private int startRow;    private int endRow;    private int startColumn;    private int endColumn;    private List<String> dataList;}

以上就是“Java怎么导出Excel增加下拉框选项”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Java怎么导出Excel增加下拉框选项

本文链接: https://lsjlt.com/news/328347.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java 导出Excel增加下拉框选项
    excel对于下拉框较多选项的,需要使用隐藏工作簿来解决,使用函数取值来做选项 选项较少(一般少于5个): private static DataValidation setFewD...
    99+
    2024-04-02
  • Java怎么导出Excel增加下拉框选项
    今天小编给大家分享一下Java怎么导出Excel增加下拉框选项的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。excel对于下...
    99+
    2023-06-30
  • EXCEL如何加下拉选项
    在Excel中,可以通过数据验证功能来为单元格加上下拉选项。具体操作如下:1. 选中需要添加下拉选项的单元格或单元格区域。2. 在E...
    99+
    2023-09-29
    EXCEL
  • excel下拉菜单选项怎么添加
    这篇文章主要介绍“excel下拉菜单选项怎么添加”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“excel下拉菜单选项怎么添加”文章能帮助大家解决问题。excel下拉菜单选项添加步骤:选中你需要添加下...
    99+
    2023-06-30
  • Java 导出Excel表格生成下拉框-EasyExcel
    1.导入EasyExcel,maven依赖 com.alibaba easyexcel 2.2.10 2.添加EasyExcelUtil工具...
    99+
    2023-09-22
    java excel 数据库
  • Excel下拉选项怎么设置三级菜单
    要在Excel中设置三级菜单的下拉选项,您可以按照以下步骤进行操作:1. 打开Excel,并选择您要设置下拉选项的单元格。2. 在E...
    99+
    2023-09-16
    excel
  • Java怎么导出Excel
    java实现Excel数据导出:(推荐:java视频教程)目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java ExcelJakarta POI 是一套用于访问微软格式文档的Java API。Jaka...
    99+
    2019-02-14
    Java
  • elementUI实现下拉选项加多选框的示例代码
    目录下拉加多选框升级—添加全部选项需求改版完善因产品需求和UI样式调整,和element自带的下拉多选有冲突,索性自己尝试修改如下: 下拉加多选框 效果如下图: 封装如下: &...
    99+
    2024-04-02
  • excel下拉菜单选项背景颜色怎么设置
    本篇内容主要讲解“excel下拉菜单选项背景颜色怎么设置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“excel下拉菜单选项背景颜色怎么设置”吧!excel下拉菜单选项背景颜色设置步骤:首先需要...
    99+
    2023-06-30
  • Html单选框,复选框和下拉框怎么用
    本篇内容主要讲解“Html单选框,复选框和下拉框怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Html单选框,复选框和下拉框怎么用”吧!单选框:type=...
    99+
    2024-04-02
  • excel下拉列表怎么设置多选
    今天小编给大家分享一下excel下拉列表怎么设置多选的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。excel下拉列表设置多选...
    99+
    2023-07-02
  • excel下拉列表怎么添加新内容
    今天小编给大家分享一下excel下拉列表怎么添加新内容的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。excel下拉列表添加新...
    99+
    2023-07-02
  • c#下拉框怎么添加内容
    在 c# 中向下拉框添加内容的步骤:创建下拉框使用 items.add() 方法添加项可选,使用 selecteditem 属性设置默认值使用 refreshitems() 方法刷新下拉...
    99+
    2024-05-12
    c# 字符串数组
  • 怎么给SAP C4C的division配置出新的下拉选项
    这篇文章主要讲解了“怎么给SAP C4C的division配置出新的下拉选项”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么给SAP C4C的division配置出新的下拉选项”吧!如图:...
    99+
    2023-06-04
  • excel怎么只导出选中的内容
    要只导出选中的内容,可以按照以下步骤操作:1. 选择要导出的内容。可以通过鼠标点击并拖动来选择一个区域,或者按住Shift键并用方向...
    99+
    2023-10-10
    excel
  • PHP中怎么实现下拉框选择
    这篇文章将为大家详细讲解有关PHP中怎么实现下拉框选择,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。< php  //提交下拉框;  //直接饱触发onc...
    99+
    2023-06-17
  • JS怎么判断下拉框被选择
    可以使用JavaScript的`onchange`事件来判断下拉框是否被选择。当下拉框的选项被改变时,`onchange`事件会被触...
    99+
    2023-08-08
    JS
  • element-plus下拉框怎么实现全选
    这篇文章主要介绍“element-plus下拉框怎么实现全选”,在日常操作中,相信很多人在element-plus下拉框怎么实现全选问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”element-plus下拉框...
    99+
    2023-06-30
  • Java怎么实现Excel导入导出操作
    今天小编给大家分享一下Java怎么实现Excel导入导出操作的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 功能测试1....
    99+
    2023-06-29
  • JAVA怎么实现导出Excel功能
    Java可以通过使用Apache POI库来实现导出Excel功能。下面是一个简单的示例代码:```javaimport org.a...
    99+
    2023-10-08
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作