在PHP中,我们可以使用PHPExcel导出excel。而在平常的使用中,我们可以设置单元格的值使用下拉选择。本文介绍如何使用PHPExcel设置单元格值下拉选择。

PHP导出Excel的准备工作,可以参考这篇文章“Think PHP5框架中实现PHP导出Excel文件”。

    示例代码如下(主要用到setFormula1方法):

/*** 单元格值设置下拉选择*/
function exportFormula()
{// 初始化PHPExcel对象vendor("PHPExcel.PHPExcel");$objPHPExcel = new \PHPExcel();$cellName = array('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', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');// 表头$xlsCell = array(array('id', 'id'),array('name', '姓名'),array('sex', '性别'),);for ($i = 0; $i < count($xlsCell); $i++) {$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i] . '1', $xlsCell[$i][1]);}// 示例数据$datas = [['id' => 1, 'name' => 'neil', 'sex' => '男']];$sex = array('1' => '男', '2' => '女');for ($i = 0; $i < count($datas); $i++) {$index = 0;foreach ($datas[$i] as $k => $v) {if ($k != 'sex') {$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$index] . ($i + 2), $v);} else {// 设置性别单元格的值下拉$list = implode(',', $sex);$objValidation1 = $objPHPExcel->getActiveSheet(0)->getCell($cellName[$index] . ($i + 2))->getDataValidation();$objValidation1->setType(\PHPExcel_Cell_DataValidation::TYPE_LIST)->setErrorStyle(\PHPExcel_Cell_DataValidation::STYLE_INFORMATION)->setAllowBlank(false)->setShowInputMessage(true)->setShowErrorMessage(true)->setShowDropDown(true)->setErrorTitle('输入的值有误')->setError('您输入的值不在下拉框列表内.')->setPromptTitle('')->setPrompt('')->setFormula1('"' . $list . '"'); // 设置为变量内容$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$index] . ($i + 2), $v);}$index++;}}// 下载文件到浏览器客户端$title = '家庭成员表';$xlsTitle = iconv('utf-8', 'gb2312', '家庭成员表'); // 文件标题header('pragma:public');header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');header("Content-Disposition:attachment;filename=$title.xls");$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');exit;
}

PHPExcel设置单元格值下拉选择相关推荐

  1. 阿里easyExcel -- excel下载/导出/读取 (单元格自定义下拉选择、不支持图片)

    主要包 <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --><dependency><gro ...

  2. php利用表格敬将所选择的数据显示出来,单元格下拉筛选设置/Excel对筛选后的单元格进行下拉填充...

    EXCEL里怎样让一个单元格能有下拉菜单? 要设置下拉菜单的单元格(或格区)----数据---有效---"允许"中选择"序"---"来源"中 ...

  3. 单元格只能下拉框选_excel给单元格添加下拉菜单列表无需按键盘用鼠标选择即可...

    excel给单元格添加下拉菜单列表无需按键盘用鼠标选择即可 时间:2013-12-08   作者:snow   来源:互联网 为了方便快速的输入数据,通常情况下我们会给单元格添加一个下拉菜单,如此一来 ...

  4. 基于java + easyExcel实现模板填充生成动态模板并设置指定单元格为下拉框样式

    需求描述:java后端开发过程中,为了满足动态生成excel模板并设置指定单元格为下拉框,且下拉框的数据项来源为动态查询的需求,在基于easyExcel的情况下,使用模板填充的方式,完成该需求. 1. ...

  5. 如何让图片充满excel单元格_如何在Excel单元格建立下拉菜单

    对于一些常用的数据我们往往会希望能够尽量快速的输入,下拉菜单就是一个最简单的解决办法.那么如何实现下拉菜单呢?跟随以下步骤,建立属于自己的下拉菜单吧! 如何建立下拉菜单? 一.确定内容:在单元格中,输 ...

  6. ag-grid 单元格编辑-下拉框

    一.基本下拉框 效果如下: 选中后的值直接就是界面显示的值(也是代码中定义的值).效果如下: 二.有id 的下拉框 这个下拉框跟平常用的select 框类似,设置id和value,在界面选择的时候显示 ...

  7. layui表格单元格添加下拉选择功能

    layui表格单元格添加下拉选择功能 1.修改表头 2.更新数据 3.修改样式 代码如下: <style>/*表格单元格里显示下拉框,添加后样式不对,需要自己调整一下样式使得下拉框与单元格 ...

  8. EasyExcel 实现单元格数据下拉选

    EasyExcel 实现单元格数据下拉选 前言 easyExcel导出模板的时候,固定的某个列我们有固定的是选项值的时候,我们需要将excel的单元格做成下拉选的情况:满足实际的业务需求. 实现 1. ...

  9. Excel怎样操作给单元格添加下拉选项?分享经验!如何给Excel单元格加入下拉列表?

    Excel作为一款电子表格软件,现已成为我们大家记录数据.处理数据中使用最为频繁的软件,我们大家在整理数据中为了简便快捷的使用,会想要在单元格中添加一个下拉菜单,这样会让我们的使用更加方便,那么下面小 ...

最新文章

  1. Java并发:分布式应用限流 Redis + Lua 实践
  2. Mysql里的日期类型 和JPA里@Temporal
  3. NoSQL 非关系数据库
  4. 【转载】Swift属性Property
  5. 通过PL/SQL developer工具访问远程的Oracle数据库_访问数据库_连接数据库_登录数据库
  6. 什么是Docker?看这一篇干货文章就够了!
  7. 页眉中字数未满但自动换行
  8. Matlab 图像预处理
  9. sql server 2000 更改账户默认数据库
  10. 学习总结之 WebApi 用户登录和匿名登录,及权限验证
  11. java中的UDP总结
  12. 集成电路设计的运作模式
  13. matlab uicontrol 下标,Matlab Impoint和Uicontrol
  14. 关于java中JDBC读取字段属性原理
  15. Spring配置解析之Component-scan解析
  16. 淘宝用户日志数据集的用户行为分析与用户分群
  17. ienumerable vs iqueryable异常
  18. 题解 CF133A 【HQ9+】
  19. 风之语.惊闻周星驰电影票房超过30亿RMB
  20. 惠普ipaq蓝牙键盘配对码_将旧的Compaq Ipaq从Ubuntu 5.10 Breezy Badger升级到8.10 Intrepid Ibex...

热门文章

  1. 从成人网站年终数据统计看各操作系统的份额表现
  2. JS 按钮下一步 下拉菜单内容转换
  3. 1062: 最大公约数 Python
  4. 使用缓存django、redis
  5. Nmos驱动电路分析
  6. vmware vmbox 使用虚拟机安装Windows11提示电脑不符合最低系统要求的解决方案
  7. hyper-v与Docker for windows和VMBox的冲突
  8. python实验总结_python实训总结和体会_python实训心得体会 - CSDN
  9. 同步时序逻辑电路分析——数电第六章学习
  10. 乐高JAVA编程_用乐高认真玩进行Design Sprint