当前位置: 首页 > news >正文

做网站是域名怎么申请重庆建设工程信息网网

做网站是域名怎么申请,重庆建设工程信息网网,备案网站名称怎么写,海南百度推广seo因项目需要导出Excel表 需要支持下拉 且 还需要支持三级联动功能 目前应为PHPExcel 不在维护#xff0c;固采用 PhpSpreadsheet 效果如图#xff1a; 第一步#xff1a;首先 使用composer 获取PhpSpreadsheet 我这里PHP 版本 7.4 命令如下#xff1a; composer r…因项目需要导出Excel表   需要支持下拉   且 还需要支持三级联动功能  目前应为PHPExcel 不在维护固采用 PhpSpreadsheet 效果如图 第一步首先 使用composer 获取PhpSpreadsheet 我这里PHP 版本 7.4  命令如下 composer require phpoffice/phpspreadsheet 第二步新建php 文件 代码如下   可根据实际情况 自己改动 ?phprequire ./vendor/autoload.php; use PhpOffice\PhpSpreadsheet\Cell\DataValidation; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\NamedRange; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Style\Alignment; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; use PhpOffice\PhpSpreadsheet\Writer\Xlsx;// 定义表头 $header [[col A, title 姓名, field name, width 20, id_down_type 0, is_text 1],[col B, title 证件号, field id_card, width 30, id_down_type 0, is_text 1],[col C, title 性别, field gender, width 20, id_down_type 1, is_text 1, count 2, sub_table_name sex],[col D, title 联系方式, field phone, width 20, id_down_type 0, is_text 1],[col E, title 门店, field mendiao, width 30, id_down_type 2, is_text 0],[col F, title 公寓, field gongyu, width 30, id_down_type 2, is_text 0],[col G, title 门牌号, field menpai, width 30, id_down_type 2, is_text 0], ];// 下拉数据[这里模拟出来数据格式实际情况从数据库获取数据并整理成下列数据格式] $oneData [[id 1,title 我是A,text我是A_1,children [[id 2,title 我是A的下级A1,text我是A的下级A1_2,children [[id 3,title 我是A1的下级A11,text我是A1的下级A11_3,],[id 4,title 我是A1的下级A12,text我是A1的下级A12_4,]]],[id 5,title 我是A的下级A2,text我是A的下级A2_5,children [[id 6,title 我是A2的下级A21,text我是A2的下级A21_6,],[id 7,title 我是A2的下级A22,text我是A2的下级A22_7,]]]]],[id 8,title 我是B,text我是B_8,children [[id 9,title 我是B的下级B1,text我是B的下级B1_9,children [[id 10,title 我是B1的下级B11,text我是B1的下级B11_10,],[id 11,title 我是B1的下级B12,text我是B1的下级B12_11,]]],[id 12,title 我是B的下级B2,text 我是B的下级B2_12,children [[id 13,title 我是B2的下级B21,text 我是B2的下级B21_13,],[id 14,title 我是B2的下级B22,text 我是B2的下级B22_14]]]]], ];//实例化Spreadsheet对象 $spreadsheet new Spreadsheet();$sex_list [[id 1, text 男],[id 2, text 女],]; $sub_table_num 1; //子表顺序 默认1 //创建子表下拉定义 用于下拉 $sub_table_info_arr [[title sex, index $sub_table_num, data $sex_list], ]; $sub_table_num;//创建下拉分表数据 create_excel_sub_table($spreadsheet, $sub_table_info_arr);//创建下拉联动分表数据 $liandong_name region; // 这里的region为分表名称 create_excel_drop_down($spreadsheet, $sub_table_num, $liandong_name, $oneData); //无限极oneData 里面结构为[[text部门1_00001,children[[text部门1子集1_00001]]]// 初始化表头 $spreadsheet-setActiveSheetIndex(0); $spreadsheet-getActiveSheet()-setTitle(导入模板);foreach ($header as $key $value) {//$spreadsheet-getActiveSheet()-setCellValueByColumnAndRow($key, 1, $value[title]);$spreadsheet-setActiveSheetIndex(0)-setCellValue($value[col] . 1, $value[title]);$spreadsheet-getActiveSheet()-getStyle($value[col] . 1, $value[title])-getFont()-getColor()-setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED); //设置红色文字// 设置每列宽度$spreadsheet-getActiveSheet()-getColumnDimension($value[col])-setWidth($value[width]);//设置单元格格式为文本if ($value[is_text] 1) {$spreadsheet-getActiveSheet()-getStyle($value[col])-getNumberFormat()-setFormatCode(NumberFormat::FORMAT_TEXT);} } $objActSheet $spreadsheet-getActiveSheet();// 输出下拉菜单 for ($i 2; $i 2000; $i) {foreach ($header as $key1 $value1) {//$this-set_select_cell($objActSheet,A,id_type,$key,$i);if ($value1[id_down_type] 1) {//单纯下拉set_select_cell($objActSheet, $value1[col], $value1[sub_table_name], $value1[count], $value1[title], $i);} elseif ($value1[id_down_type] 2) {//联动下拉if ($value1[col] A || $value1[col] E || $value1[col] AC) {switch ($value1[col]) {case E:$fit_col [F,G];break;case AC://这里为关联 如AC 列 关联AD AE 这个$fit_col [AD, AE];break;}$mian_col $value1[col];//处理联动下拉set_drop_down_select_cell($objActSheet, $mian_col, $fit_col, $value1[title], $i,$liandong_name);}}} } $path ./; $subject 导出模板.date(YmdHis); $ext .xlsx; //后缀 $export $path . $subject . $ext; $writer new Xlsx($spreadsheet); //保存文件 $writer-save($export); //关闭连接销毁变量 $spreadsheet-disconnectWorksheets();unset($spreadsheet); var_dump($export); die;/*** 创建Excel 分表* param obpe Excel 对象* param sub_table_info_arr 需要需要创建的分表二维数组 key title_name 分表表名标题 key index 分表顺序 key data 数据源 且数据源必须为 id text 键值对* param write_data 写入的数据 二维 包含 id text 两个键值*/ function create_excel_sub_table($obpe, $sub_table_info_arr) {if (!empty($sub_table_info_arr)) {foreach ($sub_table_info_arr as $key $value) {$obpe-createSheet();$obpe-setActiveSheetIndex($value[index]); //设置序号$obpe-getActiveSheet()-setTitle($value[title]); //设置表名$obpe-getActiveSheet()-setSheetState(Worksheet::SHEETSTATE_HIDDEN); //隐藏//密码$obpe-getActiveSheet()-getProtection()-setPassword(PHPExcel);$obpe-getActiveSheet()-getProtection()-setSheet(true);// This should be enabled inorder to enable any of thefollowing!$obpe-getActiveSheet()-getProtection()-setSort(true);$obpe-getActiveSheet()-getProtection()-setInsertRows(true);$obpe-getActiveSheet()-getProtection()-setFormatCells(true);$key 1;if (!empty($value[data])) {foreach ($value[data] as $k $v) {$str $v[text] . _ . $v[id];$obpe-getActiveSheet()-setCellValue(A . $key, $str);$key;}}}} }/*** 生成Excel 列* param int $num 需要的列数* return array*/function getExcelIndexRow($num1){$r [];$idx [idx 0];for ($i 0; $i $num; $i) {$r[] getNextIdx($idx);}unset($idx);return $r; }function getNextIdx($idx) {// 先转换26进制$num26 base_convert($idx[idx], 10, 26);$result ;// 对每一位进行字符转换for ($i 0; $i strlen(strval($num26)); $i) {if ($i 0 strlen(strval($num26)) ! 1) {if (is_numeric($num26[$i])) {$result. chr(ord($num26[$i]) 16);} else {$result. chr(ord($num26[$i]) - 23);}} else {if (is_numeric($num26[$i])) {$result. chr(ord($num26[$i]) 17);} else {$result. chr(ord($num26[$i]) - 22);}}}$idx[idx] $idx[idx] 1;return $result; }/***生成Excel 联动下拉* param obpe Excel对象句柄* param sub_table_num 分表序号* param table_name 分表名称* param data_source 需要处理的数据源*/ function create_excel_drop_down($obpe, $sub_table_num, $table_name, $data_source) {//***********************$obpe-createSheet();$obpe-setActiveSheetIndex($sub_table_num);$obpe-getActiveSheet()-setTitle($table_name);$obpe-getActiveSheet()-setSheetState(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::SHEETSTATE_HIDDEN); //隐藏//密码$obpe-getActiveSheet()-getProtection()-setPassword(PHPExcel);$obpe-getActiveSheet()-getProtection()-setSheet(true);// This should be enabled inorder to enable any of thefollowing!$obpe-getActiveSheet()-getProtection()-setSort(true);$obpe-getActiveSheet()-getProtection()-setInsertRows(true);$obpe-getActiveSheet()-getProtection()-setFormatCells(true);$key 1;//$col [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, BA];//这里定义1000个下拉 若超过 1000个下拉 异常输出$col getExcelIndexRow(1000);$high 0;//数据源格式必须按照以下格式规整 要不然数据处理出错/*$re [[name湖北省,children[[name武汉市,children [江夏区,洪山区,青山区,武昌区]],[name宜昌市,children [江夏区1,洪山区1,青山区1,武昌区1]],[name荆州市,children [江夏区2,洪山区2,青山区2,武昌区2]]]],[name湖南省,children[[name长沙市,children [长沙市,长沙市1,长沙市3,长沙市6]],[name岳阳市,children [岳阳市4,岳阳市3,岳阳市2,岳阳市1]],[ name常德市,children [常德市1,常德市2,常德市3,常德市4]]]],];*/foreach ($data_source as $k $v) {$str $v[text];$obpe-getActiveSheet()-setCellValue($col[0] . ($key $high), $str);$max 0; // 重置max$secondNum count($v[children]);if (!empty($v[children])) {foreach ($v[children] as $index $sendcond) {$obpe-getActiveSheet()-setCellValue($col[$index 1] . ($key $high), $sendcond[text]);//这里需要处理 若没有if (isset($sendcond[children]) $sendcond[children]) {$thirdNum count($sendcond[children]);} else {$thirdNum 0;}if ($thirdNum $max) {$max $thirdNum;}if (!empty($sendcond[children])) {foreach ($sendcond[children] as $id $third) {//$obpe-getActiveSheet()-setCellValue($col[$index1].($key$high$id1),$third);$obpe-getActiveSheet()-setCellValue($col[$index 1] . ($key $high $id 1), $third[text]);}//定义三级名称$obpe-addNamedRange(new NamedRange($sendcond[text],$obpe-getSheetByName($table_name),$col[$index 1] . ($key $high 1) . : . $col[$index 1] . ($key $high 1 $thirdNum - 1)));}}//定义二级$obpe-addNamedRange(new NamedRange($v[text],$obpe-getSheetByName($table_name),$col[1] . ($key $high) . : . $col[$secondNum] . ($key $high)));}$high $max;$key;}//移花foreach ($data_source as $var $cont) {$obpe-getSheetByName($table_name)-setCellValue(UI . ($var 1), $cont[text]);}$total count($data_source);$n 1;$obpe-addNamedRange(new NamedRange($table_name,$obpe-getSheetByName($table_name),\$UI\${$n}:\$UI\${$total})); }/***设置Excel 下拉 2020年8月4日16:02:09* param objActSheet Excel对象句柄* param col 操作的列* param table_name Excel电子薄分表下拉名称*/ function set_select_cell($objActSheet, $col , $table_name, $key , $setPromptTitle, $i , $setErrorTitle 输入的值有误, $setError 您输入的值不在下拉列表内) {$objValidation $objActSheet-getCell({$col} . $i)-getDataValidation();$objValidation-setType(DataValidation::TYPE_LIST)// -setErrorStyle(DataValidation::STYLE_INFORMATION)-setErrorStyle(DataValidation::STYLE_STOP)-setAllowBlank(true)-setShowInputMessage(true)-setShowErrorMessage(true)-setShowDropDown(true)-setErrorTitle(输入的值有误)-setError(您输入的值不在下拉列表内)-setPromptTitle({$setPromptTitle}在列表内选择)-setPrompt(请从列表中选择一个值)-setFormula1($table_name . !$A$1:$A$ . $key); }/*** 设置联动下拉的Excel 渲染 2020年8月8日20:23:39* param objActSheet Excel对象句柄* param mian_col 联动下拉第一列* param fit_col 数组 子下拉节点 setFormula1 依次为下拉第一列名 后续依次关联* param setPromptTitle 中文字段映射名称*/ function set_drop_down_select_cell($objActSheet, $main_col, $fit_col, $setPromptTitle, $i,$main_table_nameregion) {$indirect_list_arr $fit_col; //从主下拉节点开始计算array_unshift($indirect_list_arr, $main_col);//定义主表名//处理主下拉$objValidation $objActSheet-getCell($main_col . $i)-getDataValidation();$objValidation-setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST)-setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_STOP)-setAllowBlank(false)-setShowInputMessage(true)-setShowErrorMessage(true)-setShowDropDown(true)-setErrorTitle(输入的值有误)-setError(您输入的值不在下拉列表内)-setPromptTitle({$setPromptTitle}在列表内选择)//-setPromptTitle(type_list在列表内选择)-setPrompt(请从列表中选择一个值)-setFormula1({$main_table_name});//处理分节点下拉if (!empty($fit_col)) {foreach ($fit_col as $key $value) {$objValidation $objActSheet-getCell($value . $i)-getDataValidation();$objValidation-setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST)-setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_STOP)-setAllowBlank(false)-setShowInputMessage(true)-setShowErrorMessage(true)-setShowDropDown(true)-setErrorTitle(输入的值有误)-setError(您输入的值不在下拉列表内)-setPromptTitle(请选择)-setPrompt(请从列表中选择一个值)-setFormula1(INDIRECT($ . $indirect_list_arr[$key] . $i . ));}}return true; } 步骤三 运行php   我这里使用命令行  php index.php 查看即可 就是如此简单
http://www.pierceye.com/news/62649/

相关文章:

  • 猪八戒类似网站开发成本免费的ppt模板网站有哪些
  • 如何做一家类似携程的网站就业前景好的10大专业
  • 海南省建设注册中心网站长春网络推广长春seo公司
  • 点击最多的网站思科企业网络拓扑图
  • 云浮市建设局网站网站开发z亿玛酷1流量订制
  • 做维修家具广告在哪个网站好推广引流吸引人的文案
  • 精准扶贫建设网站的目的公司网站建设工作室
  • 网站源码下载了没有管理后台宝安网站设计最好的公司
  • 给企业做网站新房装修
  • 阿坝州城乡建设网站东阳网站建设软件开发
  • 广州定制型网站建设德庆网站建设公司
  • 招标网站有哪些高端公司网站设计
  • 茂名营销网站开发网站内部资源推广方法
  • 网页设计素材网站大全建站宝盒设置
  • 查网站的建站系统网站优化 价格
  • 网站改版 域名修改wordpress后台地址 插件
  • c语言 做网站外贸黄页
  • 固定ip做网站和域名区别wordpress连接oss
  • 网站设计字体最好用深圳网站建设公司联华
  • 媒体网站怎么申请百度搜索引擎工作原理
  • 东莞网站建设星河收费网站怎么免费
  • 满山红厦门网站建设国内推广
  • 企业在建设银行网站怎么发工资河南工程学院网站建设
  • 做宣传语的网站酒店建设网站的意义
  • 手机微网站建设方案购物网站开发小结
  • 网站开发一般多钱微网站建设方式
  • 天津网络建站模板网站首页做几个关键词
  • 网站建设及维护课件免费网站建设 免费
  • 上海wordpress建站高端建站网站
  • 成都医院做网站建设seo综合查询接口