JavaWeb 利用poi导出下拉框excel模版
private HSSFWorkbook workbook = null; private HSSFCellStyle titleStyle = null; private HSSFCellStyle dataStyle = null; /** * 列头样式 * @param workbook * @param sheet */ public void setTitleCellStyles(HSSFWorkbook workbook,HSSFSheet sheet){ titleStyle = workbook.createCellStyle(); //设置边框 titleStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); titleStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); titleStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); titleStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); //设置背景色 titleStyle.setFillForegroundColor(HSSFColor.WHITE.index); titleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); //设置居中 titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); //设置字体 HSSFFont font = workbook.createFont(); font.setFontName("宋体"); font.setFontHeightInPoints((short) 11); //设置字体大小 font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示 titleStyle.setFont(font);//选择需要用到的字体格式 //设置自动换行 titleStyle.setWrapText(true); //设置列宽 ,第一个参数代表列id(从0开始),第2个参数代表宽度值 sheet.setColumnWidth(0, 5000); sheet.setColumnWidth(1, 5000); sheet.setColumnWidth(2, 3000); sheet.setColumnWidth(3, 7000); sheet.setColumnWidth(4, 5000); sheet.setColumnWidth(5, 5000); sheet.setColumnWidth(6, 3000); sheet.setColumnWidth(7, 3000); sheet.setColumnWidth(8, 5000); sheet.setColumnWidth(9, 5000); sheet.setColumnWidth(10, 3000); sheet.setColumnWidth(11, 3000); sheet.setColumnWidth(12, 3000); sheet.setColumnWidth(13, 3000); sheet.setColumnWidth(14, 7000); sheet.setColumnWidth(15, 7000); sheet.setColumnWidth(16, 7000); sheet.setColumnWidth(17, 7000); sheet.setColumnWidth(18, 10000); } /** * 数据样式 * @param workbook * @param sheet */ public void setDataCellStyles(HSSFWorkbook workbook,HSSFSheet sheet){ dataStyle = workbook.createCellStyle(); //设置边框 dataStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); dataStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); dataStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); dataStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); //设置背景色 dataStyle.setFillForegroundColor(HSSFColor.WHITE.index); dataStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); //设置居中 dataStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT); //设置字体 HSSFFont font = workbook.createFont(); font.setFontName("宋体"); font.setFontHeightInPoints((short) 11); //设置字体大小 dataStyle.setFont(font);//选择需要用到的字体格式 //设置自动换行 dataStyle.setWrapText(true); } /** * 创建一列数据 * @param currentRow * @param textList */ public void creatRow(HSSFRow currentRow,List<String> textList){ if(textList!=null&&textList.size()>0){ int i = 0; for(String cellValue : textList){ HSSFCell userNameLableCell = currentRow.createCell(i++); userNameLableCell.setCellValue(cellValue); } } } /** * 创建一列应用列头 * @param userinfosheet1 * @param userName */ public void creatAppRowHead(HSSFSheet userinfosheet1,int naturalRowIndex){ HSSFRow row = userinfosheet1.createRow(naturalRowIndex-1); //0.所属分类HSSFCell Cell1 = row.createCell(0); Cell1.setCellValue("所属分类"); Cell1.setCellStyle(titleStyle); //1.分类名称HSSFCell Cell2 = row.createCell(1); Cell2.setCellValue("分类名称"); Cell2.setCellStyle(titleStyle); //2.资产类型 HSSFCell Cell3 = row.createCell(2); Cell3.setCellValue("资产类型"); Cell3.setCellStyle(titleStyle); //3.设备用途HSSFCell Cell4 = row.createCell(3); Cell4.setCellValue("设备用途"); Cell4.setCellStyle(titleStyle); //4.品牌 HSSFCell Cell5 = row.createCell(4); Cell5.setCellValue("品牌"); Cell5.setCellStyle(titleStyle); //5.型号 HSSFCell Cell6 = row.createCell(5); Cell6.setCellValue("型号"); Cell6.setCellStyle(titleStyle); //6.数量 HSSFCell Cell7 = row.createCell(6); Cell7.setCellValue("数量"); Cell7.setCellStyle(titleStyle); //7.计量单位 台、套、个 HSSFCell Cell8 = row.createCell(7); Cell8.setCellValue("计量单位"); Cell8.setCellStyle(titleStyle); //8.购入原值 HSSFCell Cell9 = row.createCell(8); Cell9.setCellValue("购入原值"); Cell9.setCellStyle(titleStyle); //9.购入时间HSSFCell Cell10 = row.createCell(9); Cell10.setCellValue("购入时间"); Cell10.setCellStyle(titleStyle); //10.现存状态 闲置、在用 HSSFCell Cell11 = row.createCell(10); Cell11.setCellValue("现存状态"); Cell11.setCellStyle(titleStyle); //11.仓库状态 在库、离库 HSSFCell Cell12 = row.createCell(11); Cell12.setCellValue("仓库状态"); Cell12.setCellStyle(titleStyle); //12.资产属性 完好、损坏 HSSFCell Cell13 = row.createCell(12); Cell13.setCellValue("资产属性"); Cell13.setCellStyle(titleStyle); //13.报废属性 正常、报废HSSFCell Cell14 = row.createCell(13); Cell14.setCellValue("报废属性"); Cell14.setCellStyle(titleStyle); //14.保管人 HSSFCell Cell15 = row.createCell(14); Cell15.setCellValue("保管人"); Cell15.setCellStyle(titleStyle); //15.资金来源HSSFCell Cell16 = row.createCell(15); Cell16.setCellValue("资金来源"); Cell16.setCellStyle(titleStyle); //16.供应商HSSFCell Cell17 = row.createCell(16); Cell17.setCellValue("供应商"); Cell17.setCellStyle(titleStyle); //17.供应商电话HSSFCell Cell18 = row.createCell(17); Cell18.setCellValue("供应商电话"); Cell18.setCellStyle(titleStyle); //18.备注说明HSSFCell Cell19 = row.createCell(18); Cell19.setCellValue("备注说明"); Cell19.setCellStyle(titleStyle); } /** * 创建一列应用数据 * @param userinfosheet1 * @param userName */ public void creatAppRow(HSSFSheet userinfosheet1,String titels,int naturalRowIndex){ //在第一行第一个单元格,插入下拉框 HSSFRow row = userinfosheet1.createRow(naturalRowIndex-1);//所属分类String [] list1={"办公计算设备","网络交换设备","安全防御设备","办公打印设备","复印扫描设备","监控预警设备","影音传输设备","存储备份设备","机房运维设备","办公软件","工具软件","专业软件","系统软件","其他软件"}; //分类名称String [] list2={"台式电脑","便携式电脑","平板电脑","智能终端","服务器","其他办公计算设备","交换机","路由器","中继设备","负载均衡","其他交换设备","防火墙","防毒墙","邮件网关","入侵防御","数据库审计","其他安全防御设备","上网行为管理","VPN","针式打印机","激光式打印机","喷墨式打印机","一体机(打印、复印、传值)","票据打印机","其他办公打印设备","一体机","复印机","扫描仪","传真机","新风空调设备","UPS电源"}; //资产类型String [] list3={"主设备","介质","配件"};//计量单位String [] list4={"台","套","个"}; //现存状态String [] list5={"闲置","在用"}; //仓库状态String [] list6={"在库","离库"}; //资产属性String [] list7={"完好","损坏"}; //报废属性String [] list8={"正常","报废"}; //0.所属分类HSSFCell cell1 = row.createCell(0); cell1.setCellValue("请选择"); cell1.setCellStyle(dataStyle); //1.分类名称HSSFCell cell2 = row.createCell(1); cell2.setCellValue("请选择"); cell2.setCellStyle(dataStyle); //2.资产类型 HSSFCell cell3 = row.createCell(2); cell3.setCellValue("请选择"); cell3.setCellStyle(dataStyle); //3.设备用途HSSFCell cell4 = row.createCell(3); cell4.setCellValue(titels); cell4.setCellStyle(dataStyle); //4.品牌HSSFCell cell5 = row.createCell(4); cell5.setCellValue(titels); cell5.setCellStyle(dataStyle); //5.型号HSSFCell cell6 = row.createCell(5); cell6.setCellValue(titels); cell6.setCellStyle(dataStyle); //6.数量HSSFCell cell7 = row.createCell(6); cell7.setCellValue(titels); cell7.setCellStyle(dataStyle); //7.计量单位HSSFCell cell8 = row.createCell(7); cell8.setCellValue("请选择"); cell8.setCellStyle(dataStyle); //8.购入原值HSSFCell cell9 = row.createCell(8); cell9.setCellValue(titels); cell9.setCellStyle(dataStyle); //9.购入时间HSSFCell cell10 = row.createCell(9); cell10.setCellValue(new SimpleDateFormat("yyyy-MM-dd").format(new Date()).toString()); cell10.setCellStyle(dataStyle); //10.现存状态HSSFCell cell11 = row.createCell(10); cell11.setCellValue("请选择"); cell11.setCellStyle(dataStyle); //11.仓库状态HSSFCell cell12 = row.createCell(11); cell12.setCellValue("请选择"); cell12.setCellStyle(dataStyle); //12.资产属性HSSFCell cell13 = row.createCell(12); cell13.setCellValue("请选择"); cell13.setCellStyle(dataStyle); //13.报废属性HSSFCell cell14 = row.createCell(13); cell14.setCellValue("请选择"); cell14.setCellStyle(dataStyle); //14.保管人HSSFCell cell15 = row.createCell(14); cell15.setCellValue(titels); cell15.setCellStyle(dataStyle); //15.资金来源HSSFCell cell16 = row.createCell(15); cell16.setCellValue(titels); cell16.setCellStyle(dataStyle); //16.供应商HSSFCell cell17 = row.createCell(16); cell17.setCellValue(titels); cell17.setCellStyle(dataStyle); //17.供应商电话HSSFCell cell18 = row.createCell(17); cell18.setCellValue(titels); cell18.setCellStyle(dataStyle); //18.备注说明HSSFCell cell19 = row.createCell(18); cell19.setCellValue(titels); cell19.setCellStyle(dataStyle); //得到验证对象 DataValidation data_validation_list = this.getDataValidationByFormula(list1,naturalRowIndex,1); //从1开始下拉框处于第几列 //工作表添加验证数据 userinfosheet1.addValidationData(data_validation_list);DataValidation data_validation_list2 = this.getDataValidationByFormula(list2,naturalRowIndex,2); //工作表添加验证数据 userinfosheet1.addValidationData(data_validation_list2);DataValidation data_validation_list3 = this.getDataValidationByFormula(list3,naturalRowIndex,3); //工作表添加验证数据 userinfosheet1.addValidationData(data_validation_list3);DataValidation data_validation_list8 = this.getDataValidationByFormula(list4,naturalRowIndex,8); //工作表添加验证数据 userinfosheet1.addValidationData(data_validation_list8); DataValidation data_validation_list11 = this.getDataValidationByFormula(list5,naturalRowIndex,11); //工作表添加验证数据 userinfosheet1.addValidationData(data_validation_list11); DataValidation data_validation_list12 = this.getDataValidationByFormula(list6,naturalRowIndex,12); //工作表添加验证数据 userinfosheet1.addValidationData(data_validation_list12); DataValidation data_validation_list13 = this.getDataValidationByFormula(list7,naturalRowIndex,13); //工作表添加验证数据 userinfosheet1.addValidationData(data_validation_list13);DataValidation data_validation_list14 = this.getDataValidationByFormula(list8,naturalRowIndex,14); //工作表添加验证数据 userinfosheet1.addValidationData(data_validation_list14); } /** * 使用已定义的数据源方式设置一个数据验证 * @param formulaString * @param naturalRowIndex * @param naturalColumnIndex * @return */ public DataValidation getDataValidationByFormula(String[] formulaString,int naturalRowIndex,int naturalColumnIndex){ //加载下拉列表内容 DVConstraint constraint = DVConstraint.createExplicitListConstraint(formulaString); //设置数据有效性加载在哪个单元格上。 //四个参数分别是:起始行、终止行、起始列、终止列 int firstRow = naturalRowIndex-1; int lastRow = naturalRowIndex-1; int firstCol = naturalColumnIndex-1; int lastCol = naturalColumnIndex-1; CellRangeAddressList regions=new CellRangeAddressList(firstRow,lastRow,firstCol,lastCol); //数据有效性对象 DataValidation data_validation_list = new HSSFDataValidation(regions,constraint); return data_validation_list; } /** * 生成导出下拉框excel * @param outPathStr 输出路径 */ public HSSFWorkbook ExportComboxExcel (HSSFWorkbook workbook) { try {
// workbook = new HSSFWorkbook();//excel文件对象 HSSFSheet sheet1 = workbook.createSheet("sheet1");//工作表对象 //设置列头样式 this.setTitleCellStyles(workbook,sheet1); //设置数据样式 this.setDataCellStyles(workbook,sheet1); //创建一行列头数据 this.creatAppRowHead(sheet1,1); //创建一行数据 for (int i = 2; i < 11; i++) { this.creatAppRow(sheet1, "",i); } System.out.println("导出成功!"); } catch (Exception e) { e.printStackTrace(); }return workbook;}
--------------------------------------------------------------------
action/*** 导出台帐登记表(模版).xls* @author fangke* @throws IOException */public String ExprotExcelTemp() throws IOException{HSSFWorkbook wb = null;ExportComboxExcel ecbe = null;
try
{
//Excel模板路径//重设头信息
ServletOutputStream out = response.getOutputStream();response.reset();response.setContentType("application/vnd.ms-excel;charset=utf-8");response.setHeader("Content-Disposition", "attachment;filename="+ new String(("台帐入库登记表(模版)" + ".xls").getBytes(), "iso-8859-1"));wb = new HSSFWorkbook();
ecbe = new ExportComboxExcel();
wb=ecbe.ExportComboxExcel(wb);
wb.write(out);
//刷新输出流out.flush();//关闭输出流if(out!=null){out.close();}
} catch (FileNotFoundException e) { e.printStackTrace(); } return null;}
JavaWeb 利用poi导出下拉框excel模版相关推荐
- poi 复制下拉框内容入力规则
在poi中,下拉框里面有两种格式入力,一种是通过入力规则直接有数据进行复制 另一种是通过引用其他sheet或者是单元格的内容进行list显示的 private void xxcopy() {List& ...
- Easyexcel生成excel并通过自定义注解实现下拉框以及动态下拉框(将数据库中的数据显示在excel下拉框中)
首先需要定义excel实体类 @Data @ColumnWidth(22) @HeadRowHeight(30) public class ExcelProductDTO {//动态下拉框,可以查询数 ...
- EasyExcel之回填下拉框
一.业务背景 1.1 技术演进 在业务系统的开发中,我们会经常遇见各类各样的Excel导出,按照传统的做法,我们会引入第三方工具jar: POI来实现我们的导出功能.但是这也有缺点,我们的业务代码中充 ...
- 使用poi导出大量数据到excel遇到的问题
最近在工作遇到利用poi导出大量数据到excel并提供下载的运用场景,并遇到了一个问题,当数据量过大时(几十万),后台在进行数据写入excel中的过程会非常耗时,导致迟迟没有响应前台,结果数据还没导完 ...
- 力软下拉框多选_jquery实现下拉框多选
一.说明 本文是利用EasyUI实现下拉框多选功能,在ComboxTree其原有的基础上对样式进行了改进,样式表已上传demo,代码如下 二.代码 利用EasyUI实现多选下拉框 $(function ...
- 力软下拉框多选_jquery实现下拉框多选方法介绍
一.说明 本文是利用EasyUI实现下拉框多选功能,在ComboxTree其原有的基础上对样式进行了改进,样式表已上传demo,代码如下 二.代码 利用EasyUI实现多选下拉框 $(function ...
- POI 导出excel ,xlsx 公式多个下拉框 XSSF
业务需求需要导出Excel,然而xls部分公式无法使用,且导出效率和行数有限制,因此更换导出文件为xlsx,下拉框个数根据参数传入.代码写得有点乱,如下代码为导出excel xlsx格式的代码 /** ...
- Excel导出模板加数据时,下拉框丢失解决方案
简介: 在工作中.我们大多数会碰到导出.导入excel功能.此篇文档便是对导出时,模板中自带的下拉框丢失的问题记录. 摘要: 首先简要描述如何实现excel导出模板加数据功能. 1.读取sheet模板 ...
- springboot导出excel(easyexcel和poi 列下拉及表格锁定)
最近做的项目导入的数据量比较大,直接用poi或者easypoi会可能会出现OOM的情况,综合考虑下用easyexcel, pom引入所需包 <!-- https://mvnrepository. ...
最新文章
- 一图看懂学位服:学位帽、学位袍、流苏、垂布
- PAYPAL 支付,sandbox测试的时候遇到异常:请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法。...
- 如何防止远程程序与RDS PG连接中断
- JBOSS5+ActiveMQ5.7集成
- Windows 活动目录(AD)服务器系统升级到2012之最终域控服务器安装(五)
- Docker学习总结之docker入门(转自:Vikings翻译)
- Nginx笔记总结十一:Nginx重写规则指南
- 用Python实现开心消消乐小游戏
- 2021-03-08-java-pdf导出-lowagie
- Windows 8设置保护视力的颜色
- 经典~吸引力法则:你相信什么,就会吸引什么,获得什么
- 从特征融合的视角设计图神经网络的拓扑结构
- 牛客练习赛30-A/C
- 知识点总结之学习方式
- python——加解密hashlib/hmac/random/secrets/base64/pycrypto
- 大神有没有?看看ajax post 数据到WCF为啥总报405或跨域?
- 我的组会内容分享(部分)CDR+CTLE+DFE
- 渗透测试实战-BurpSuite 使用入门
- 2016年11月整理的最新php免杀一句话木马, 2017php免杀一句话(php过狗一句话,过狗菜刀,2016过狗一句话,2016php免杀一句话,php过waf一句话)
- openfalcon 组件监控_使用滴滴云快速搭建 Open-Falcon 监控平台
热门文章
- unity跑酷怎么添加金币_【Unity3D实战】零基础一步一步教你制作跑酷类游戏(填坑完整版)...
- 黑群晖(XPEnology)无法启动重建系统并保留数据经验总结
- 软件功能以图找图自动点击鼠标 发现一款非常好用的以图视图自动操作软件AI万控系统和大家分享一下全名叫“AI人工智能万控系统”
- java中遍历数组_java循环取数组值
- 西方哲学简史(1)--希腊哲学的精神与问题
- 读冯友兰之《中国哲学简史》
- ERROR 1449 (HY000): The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exist
- 锐龙r9 4900H怎么样?相当于什么水平级别?
- 西门子S7-1200笔记
- abap al设置单元格可编辑 oo_REUSE_ALV_GRID_DISPLAY_LVC-可编辑单元格