基于poi生成excel模板并生成下拉选择框
直接上代码(有注释)
public void downloadImportTemplate(HttpServletResponse response) {try {ServletOutputStream outputStream = response.getOutputStream();//创建工作表XSSFWorkbook workbook = new XSSFWorkbook();//标题行的标题List<String> requireRowNameList = Collections.singletonList("订单编号");List<String> optionalRowNameList = Arrays.asList("用户编号");String fileName = "导入模板" + DateUtils.formatDateTime();XSSFSheet sheet = workbook.createSheet("导入模板");XSSFRow row = null;XSSFCell cell = null;//----------------标题样式---------------------XSSFCellStyle titleStyle = workbook.createCellStyle();//标题样式titleStyle.setAlignment(HorizontalAlignment.CENTER);titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);Font titleFont = workbook.createFont();titleFont.setFontHeightInPoints((short) 22);titleFont.setFontName("微软雅黑");titleFont.setBold(true);titleStyle.setFont(titleFont);//----------------列样式2 必填字段显红色---------------------XSSFCellStyle cellStyle2 = workbook.createCellStyle();cellStyle2.setAlignment(HorizontalAlignment.CENTER);cellStyle2.setVerticalAlignment(VerticalAlignment.CENTER);Font cellFont2 = workbook.createFont();cellFont2.setFontName("微软雅黑");cellFont2.setBold(true);cellFont2.setColor((short) 0xa); // 红色cellStyle2.setFont(cellFont2);//----------------列样式3 非必填字段显黑色---------------------XSSFCellStyle cellStyle3 = workbook.createCellStyle();cellStyle3.setAlignment(HorizontalAlignment.CENTER);cellStyle3.setVerticalAlignment(VerticalAlignment.CENTER);Font cellFont3 = workbook.createFont();cellFont3.setFontName("微软雅黑");cellFont3.setBold(true);cellStyle3.setFont(cellFont3 );//------------------- 创建第一行(字段名) --------------------row = sheet.createRow(0);sheet.setDefaultColumnWidth(20);sheet.autoSizeColumn(1);sheet.autoSizeColumn(1, true);int i = 0;for (; i < requireRowNameList.size(); i++) {cell = row.createCell(i);//必填列红色显示cell.setCellStyle(cellStyle2);cell.setCellValue(requireRowNameList.get(i));}int j = 0;for (; j < optionalRowNameList.size(); i++, j++) {cell = row.createCell(i);//非必填列黑色显示cell.setCellStyle(cellStyle3);cell.setCellValue(optionalRowNameList.get(j));}cell = row.createCell(i);//非必填列黑色显示cell.setCellStyle(cellStyle3);cell.setCellValue("是否通知客户");//--------------------设置下拉选择框的代码-----------------------------//选择框可选值String[] datas = new String[]{"是", "否"};//设置需要生成下拉列表的表格范围,1代表从第二行开始,30000代表一直到第三万零一行,第i+1列开始,到第i+1列;CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(1, 30000, i, i);//生成下拉框内容DataValidationHelper dvHelper = sheet.getDataValidationHelper();DataValidationConstraint dvConstraint = dvHelper.createExplicitListConstraint(datas);DataValidation validation = dvHelper.createValidation(dvConstraint, cellRangeAddressList);//设置错误信息提示validation.setShowErrorBox(true);//对sheet页生效sheet.addValidationData(validation);//------------------------------------------------response.setContentType("application/binary;charset=UTF-8");response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName + ".xlsx", "UTF-8"));FileUtils.setAttachmentResponseHeader(response, fileName);workbook.write(outputStream);outputStream.flush();outputStream.close();} catch (Exception e) {log.error("获取导入模板失败e={}", e.getMessage(), e);}}
相关文章:
基于poi生成excel模板并生成下拉选择框
直接上代码(有注释) public void downloadImportTemplate(HttpServletResponse response) {try {ServletOutputStream outputStream response.getOutputStream();//创建工作表XSSFWorkbook workbook new XSSFWorkbook();//标题行的标题List<String…...
Redis五种类型
Redis 基础类型 String 应用场景 缓存功能:string 最常用的就是缓存功能,会将一些更新不频繁但是查询频繁的数据缓存起来,以此来减轻 DB 的压力。 底层实现 如果字符串对象保存的是一个字符串值, 并且这个字符串值的长度大于…...
通过IP地址如何防范钓鱼网站诈骗?
随着互联网的普及和发展,钓鱼网站诈骗的风险日益增加。钓鱼网站通过伪装成合法网站,诱导用户输入个人敏感信息进而进行非法活动。IP地址作为网络通信的基本单位,可以在一定程度上帮助我们防范钓鱼网站诈骗。本文将探讨IP地址防范钓鱼网站诈骗…...
useEffect使用详解
useEffect是React中的一个钩子函数,用于处理副作用操作。副作用是指在组件渲染过程中,可能会对外部环境产生影响的操作,比如数据获取、订阅事件、操作DOM等。 useEffect接受两个参数:一个是副作用函数,另一个是依赖数…...
element-table的动态操作,自动以表格,动态新增行、列,删除行列
灵活的自定义表格行列以及增删改查的操作,右键选中列则是列的删除,效果如下 <template><div class"st-table"><div style"width: 100%"><el-button click"addRow()" type"primary" icon"CircleP…...
python--文件管理系统
文件系统管理项目说明文档 项目说明 基本任务 在内存中开辟一个空间作为文件存储器,在其上实现一个简单的文件系统退出这个文件系统时,需要该文件系统的内容保存到磁盘上,以便下次可以将其回复到内存中来 具体要求 文件存储空间管理可采取链…...
uniapp 微信小程序:RecorderManager 录音DEMO
uniapp 微信小程序:RecorderManager 录音DEMO 简介index.vue参考资料 简介 使用 RecorderManager 实现录音。及相关的基本操作。(获取文件信息,上传文件) 此图包含Demo中用于上传测试的服务端程序upload.exe,下载后用…...
__call__和__init__和__new__和__str__和__repr__
目录 一、__call__ 二、__init__和__new__ 三、__str__ 四、__repr__ python从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129328397?spm1001.2014.3001.5502 一、__call__ 对象后面加括号时,触发执行。注:构…...
设计模式--工厂模式(Factory Pattern)
一、 什么是工厂模式 工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的接口,但是将对象的实例化过程推迟到子类中。工厂模式允许通过调用一个共同的接口方法来创建不同类型的对象,而无需暴露对…...
【Android】 No matching variant of com.android.tools.build:gradle:[版本号] was found
项目报错 No matching variant of com.android.tools.build:gradle:8.1.1 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute …...
650V 1200V碳化硅二极管MOS管规格书参数,6A 8A 10A 15A 20A 封装TO220低VF电压 低内阻特性
650V碳化硅二极管6A 8A 15A提供样品 650V 40毫欧超结COOL MOS提供样品 650V 超结COOL MOS资料 国产替代 650V 1200V碳化硅二极管技术资料...
python基础—python6种基本数据类型及数据类型之间转换
文章目录 一、python标准数据类型(一)数字类型整型:int浮点型:flaot布尔型:bool复数类型:complex (二)字符串(三)列表类型(四)元组类型…...
Axure RP
Axure RP 简介下载安装汉化注册 简介 Axure RP(Rapid Prototyping)是一款交互式原型设计工具,用于创建高保真的交互式界面原型和线框图。它主要用于用户体验(UX)和用户界面(UI)设计,…...
java使用ExcelExportUtil.exportBigExcel导出大文件(非分页)
网上看到很多使用这个方法处理的时候,大多使用的分页进行查询,但是当遇到特殊的产品需求,比如A类型数据,多条记录就显示多行,B类型的要求存在多条记录时,就进行汇总后只显示一条,这就导致无法使…...
PlantUML文本绘制类图
记录下文本绘制类图的语法 参考 https://juejin.cn/post/6844903731293585421 类的UML表示 使用UML表示一个类,主要由三部分组成。类名、属性、方法。其中属性和方法的访问修饰符用 - 、# 、 表示 private、protected、public。 如图所示,表示A类有一个…...
5分钟理解NPL算法 之 马尔可夫链 Markov Chain
马尔可夫链(Markov Chain) 马尔可夫链是一种简单的推理模型。用于描述受当前事件影响下的下一事件发生概率。在预测学科中广泛应用。例如股票预测、文字推理、路线推荐等。 他的核心思路是:假设事件顺序为: X 1 , X 2 , X 3 , . . . . . X…...
C#_GDI+ 绘图编程入门
官网提供相关API GDI 基本图形功能_drawing 高级二维和矢量图形功能_drawing2D GDI 图像处理功能_Imaging GDI 排版功能_text Windows 窗体应用程序提供打印功能_Printing 像素 构成图像的最小单位就是像素;屏幕上显示不管是位图或者矢量图,当描述…...
自己写一个svg转化为安卓xml的工具类
自己写一个svg转化为安卓xml的工具类_张风捷特烈的博客-CSDN博客 svg资源阿里巴巴矢量资源网站:iconfont-阿里巴巴矢量图标库 感觉一般的svg到Android可用的xml差异有点规律,主要的就是path 秉承着能用代码解决的问题,绝对不动手。能够靠智商解决的问题…...
基于随机森林的机器启动识别,基于随机森林的智能家居电器启动识别
目录 背影 摘要 随机森林的基本定义 随机森林实现的步骤 基于随机森林的机器启动识别 代码下载链接: 基于随机森林的家用电器启动识别,基于RF的电器启动识别,基于随机森林的智能家居启动检测-深度学习文档类资源-CSDN文库 https://download.csdn.net/download/abc991835105/…...
Apache Doris 极简运维之BE扩缩容(1)
Apache Doris 极简运维之BE扩缩容(1) 一、环境信息硬件信息软件信息 二、缩容2.1 DROP BACKEND缩容2.2 DECOMMISSION BACKEND缩容2.2.1 缩容前2.2.2 缩容中2.2.3 缩容后 三、扩容3.1 扩容前3.2 扩容中3.3 扩容后 四、总结 一、环境信息 已部署三个BE节点…...
抖音视频批量下载器:如何快速高效地收集和管理海量抖音内容
抖音视频批量下载器:如何快速高效地收集和管理海量抖音内容 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 抖音作为国内最大的短视频平台,每天产生数以百万计的视频内容,…...
OpenClaw+ollama-QwQ-32B自动化测试:从用例生成到结果分析
OpenClawollama-QwQ-32B自动化测试:从用例生成到结果分析 1. 为什么选择OpenClaw做测试自动化 作为一个长期与测试代码打交道的开发者,我一直在寻找能够真正减轻重复劳动的解决方案。传统的测试框架虽然成熟,但编写和维护测试用例仍然占据了…...
Wan2.1 VAE模型压缩实战:降低显存占用以适配更多GPU设备
Wan2.1 VAE模型压缩实战:降低显存占用以适配更多GPU设备 最近在尝试部署一些图像生成项目时,经常遇到一个头疼的问题:模型太大,显存不够用。特别是像Wan2.1 VAE这类模型,虽然生成效果出色,但动辄几个G的显…...
别再只用Set5了!超分辨率模型训练,这5个开源数据集(DIV2K、Flickr2K等)的实战配置与对比
超分辨率模型训练:5个开源数据集的深度实战指南 在超分辨率研究领域,数据集的选择往往决定了模型性能的上限。许多开发者习惯性地使用Set5、Set14等小型数据集,却忽略了更丰富的数据资源可能带来的性能突破。本文将深入解析DIV2K、Flickr2K、…...
嵌入式系统SOC验证与Linux实时补丁技术解析
嵌入式系统软件工程师面试技术要点解析 1. SOC原型验证技术体系 1.1 SOC验证工作内容与方法论 SOC原型验证是芯片设计流程中的关键环节,主要工作内容包括: 功能验证:确保设计符合规范要求 性能验证:评估系统吞吐量、延迟等指标…...
Remotery WebSocket通信机制:浏览器端性能数据可视化
Remotery WebSocket通信机制:浏览器端性能数据可视化 【免费下载链接】Remotery Single C file, Realtime CPU/GPU Profiler with Remote Web Viewer 项目地址: https://gitcode.com/gh_mirrors/re/Remotery Remotery作为一款轻量级实时CPU/GPU性能分析工具&…...
提升code-server前端性能的终极指南:渐进式图片加载高级技巧
提升code-server前端性能的终极指南:渐进式图片加载高级技巧 【免费下载链接】code-server VS Code in the browser 项目地址: https://gitcode.com/GitHub_Trending/co/code-server code-server作为一款能在浏览器中运行的VS Code实现,让开发者可…...
AI驱动关键词优化的SEO未来趋势与实际应用解析
本文旨在探讨AI在搜索引擎优化(SEO),特别是关键词优化领域的重要角色。文章分析了AI技术如何通过数据分析和用户行为洞察,帮助企业制定更加有效的关键词策略。AI能够实时监测市场趋势,识别用户意图,并根据这…...
CREST:如何用5分钟开启分子构象探索之旅?
CREST:如何用5分钟开启分子构象探索之旅? 【免费下载链接】crest Conformer-Rotamer Ensemble Sampling Tool based on the xtb Semiempirical Extended Tight-Binding Program Package 项目地址: https://gitcode.com/gh_mirrors/crest/crest 在…...
OpenClaw+Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF:学术论文辅助写作系统
OpenClawQwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF:学术论文辅助写作系统 1. 为什么需要AI辅助学术写作 去年冬天,我在赶一篇计算机视觉领域的会议论文时,经历了所有研究者都熟悉的痛苦:连续三天熬夜整理参考文献、…...
