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模版相关推荐

  1. poi 复制下拉框内容入力规则

    在poi中,下拉框里面有两种格式入力,一种是通过入力规则直接有数据进行复制 另一种是通过引用其他sheet或者是单元格的内容进行list显示的 private void xxcopy() {List& ...

  2. Easyexcel生成excel并通过自定义注解实现下拉框以及动态下拉框(将数据库中的数据显示在excel下拉框中)

    首先需要定义excel实体类 @Data @ColumnWidth(22) @HeadRowHeight(30) public class ExcelProductDTO {//动态下拉框,可以查询数 ...

  3. EasyExcel之回填下拉框

    一.业务背景 1.1 技术演进 在业务系统的开发中,我们会经常遇见各类各样的Excel导出,按照传统的做法,我们会引入第三方工具jar: POI来实现我们的导出功能.但是这也有缺点,我们的业务代码中充 ...

  4. 使用poi导出大量数据到excel遇到的问题

    最近在工作遇到利用poi导出大量数据到excel并提供下载的运用场景,并遇到了一个问题,当数据量过大时(几十万),后台在进行数据写入excel中的过程会非常耗时,导致迟迟没有响应前台,结果数据还没导完 ...

  5. 力软下拉框多选_jquery实现下拉框多选

    一.说明 本文是利用EasyUI实现下拉框多选功能,在ComboxTree其原有的基础上对样式进行了改进,样式表已上传demo,代码如下 二.代码 利用EasyUI实现多选下拉框 $(function ...

  6. 力软下拉框多选_jquery实现下拉框多选方法介绍

    一.说明 本文是利用EasyUI实现下拉框多选功能,在ComboxTree其原有的基础上对样式进行了改进,样式表已上传demo,代码如下 二.代码 利用EasyUI实现多选下拉框 $(function ...

  7. POI 导出excel ,xlsx 公式多个下拉框 XSSF

    业务需求需要导出Excel,然而xls部分公式无法使用,且导出效率和行数有限制,因此更换导出文件为xlsx,下拉框个数根据参数传入.代码写得有点乱,如下代码为导出excel xlsx格式的代码 /** ...

  8. Excel导出模板加数据时,下拉框丢失解决方案

    简介: 在工作中.我们大多数会碰到导出.导入excel功能.此篇文档便是对导出时,模板中自带的下拉框丢失的问题记录. 摘要: 首先简要描述如何实现excel导出模板加数据功能. 1.读取sheet模板 ...

  9. springboot导出excel(easyexcel和poi 列下拉及表格锁定)

    最近做的项目导入的数据量比较大,直接用poi或者easypoi会可能会出现OOM的情况,综合考虑下用easyexcel, pom引入所需包 <!-- https://mvnrepository. ...

最新文章

  1. 一图看懂学位服:学位帽、学位袍、流苏、垂布
  2. PAYPAL 支付,sandbox测试的时候遇到异常:请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法。...
  3. 如何防止远程程序与RDS PG连接中断
  4. JBOSS5+ActiveMQ5.7集成
  5. Windows 活动目录(AD)服务器系统升级到2012之最终域控服务器安装(五)
  6. Docker学习总结之docker入门(转自:Vikings翻译)
  7. Nginx笔记总结十一:Nginx重写规则指南
  8. 用Python实现开心消消乐小游戏
  9. 2021-03-08-java-pdf导出-lowagie
  10. Windows 8设置保护视力的颜色
  11. 经典~吸引力法则:你相信什么,就会吸引什么,获得什么
  12. 从特征融合的视角设计图神经网络的拓扑结构
  13. 牛客练习赛30-A/C
  14. 知识点总结之学习方式
  15. python——加解密hashlib/hmac/random/secrets/base64/pycrypto
  16. 大神有没有?看看ajax post 数据到WCF为啥总报405或跨域?
  17. 我的组会内容分享(部分)CDR+CTLE+DFE
  18. 渗透测试实战-BurpSuite 使用入门
  19. 2016年11月整理的最新php免杀一句话木马, 2017php免杀一句话(php过狗一句话,过狗菜刀,2016过狗一句话,2016php免杀一句话,php过waf一句话)
  20. openfalcon 组件监控_使用滴滴云快速搭建 Open-Falcon 监控平台

热门文章

  1. unity跑酷怎么添加金币_【Unity3D实战】零基础一步一步教你制作跑酷类游戏(填坑完整版)...
  2. 黑群晖(XPEnology)无法启动重建系统并保留数据经验总结
  3. 软件功能以图找图自动点击鼠标 发现一款非常好用的以图视图自动操作软件AI万控系统和大家分享一下全名叫“AI人工智能万控系统”
  4. java中遍历数组_java循环取数组值
  5. 西方哲学简史(1)--希腊哲学的精神与问题
  6. 读冯友兰之《中国哲学简史》
  7. ERROR 1449 (HY000): The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exist
  8. 锐龙r9 4900H怎么样?相当于什么水平级别?
  9. 西门子S7-1200笔记
  10. abap al设置单元格可编辑 oo_REUSE_ALV_GRID_DISPLAY_LVC-可编辑单元格