php导出Excel里HTML内容文件类方法
本文主要和大家分享php导出Excel里HTML内容文件类方法,主要以代码的形式和大家分享,希望能帮助到大家。
<?php /** * 导出Excel(内容为HTML)文件类 * @author yzq */ class Excel_html{ private $_common_style = ''; //通用样式 private $_head = ''; //表头内容 private $_body = ''; //表格内容 private $_head_bgcolor = '#f3f3f3'; //表头默认背景颜色 private $_body_bgcolor = ''; //表格默认背景颜色 private $_default_width = 100; //默认宽度 Private $_default_align = 'center'; //默认对齐方式 private $_default_charset = 'utf-8'; //默认导出编码 private $_tables = []; //一个文件里有多个table时使用 private $_table_brs = []; //table间是否换行 /** * 设置表头背景颜色 */ public function set_head_bgcolor($bgcolor = '#f3f3f3'){ $this->_head_bgcolor = $bgcolor; } /** * 设置表格背景颜色 */ public function set_body_bgcolor($bgcolor = ''){ $this->_body_bgcolor = $bgcolor; } /** * 设置输出字符编码 */ public function set_charset($charset = 'utf-8'){ $this->_default_charset = $charset; } /** * 设置默认对齐方式 */ public function set_align($align = 'center'){ $this->_default_align = $align; } /** * 设置默认宽度 * @param int $width */ public function set_default_width($width = 100){ $this->_default_width = $width; } /** * 设置通用样式 * @param string $style */ public function set_common_style($style = ''){ $this->_common_style = $style; } /** * 添加一个table * @param int $add_br 是否添加换行 */ public function add_talbe($add_br = 0){ $this->_tables[] = array( 'head' => $this->_head, 'body' => $this->_body, ); $this->_table_brs[] = $add_br ? 1 : 0; $this->_head = ''; $this->_body = ''; } /** * 添加表头 * @param array $head_arr = array( * // array(array(字段名1, 宽度, 其他设置), 字段名2) 宽度 其他设置(如跨列,跨行等) 可选 * array( * array('序号', 100, ['colspan' => 2, 'rowspan' => 2]), * '订单号', * '同行客户' * ) * ) * */ public function add_head($head_arr = array()){ $head_html = '<tr>'; if (is_array($head_arr) && !empty($head_arr)){ foreach ($head_arr as $head){ if (!is_array($head)){ $head_html .= "<th width='" . $this->_default_width . "' bgcolor='" . $this->_head_bgcolor . "'>" . $this->get_value($head) . "</th>\n"; }else { $width = !empty($head[1]) ? $head[1] : $this->_default_width; $other = isset($head[2]) ? $head[2] : []; $head_html .= "<th width='" . $width . "' bgcolor='" . $this->_head_bgcolor . "'"; if(!empty($other) && is_array($other)){ foreach($other as $k => $v){ $head_html .= " {$k}='{$v}' "; } } $head_html .= " >" . $this->get_value($head[0]) . "</th>\n"; } } } $head_html .= "</tr>\n"; $this->_head .= $head_html; } /** * 添加表格内容 * @param array $body_arr = array( * //array(array(字段值, 对齐方式, 样式, 其他设置)) //对齐方式、样式、其他设置(如跨列,跨行等)可选 * array( * array(1, 'left', 'style="..."', ['colspan' => 2, 'rowspan' => 2]), * array('2', 'right'), * 3 * ) * ) * * @param $deal_long_num 是否处理长度较长的数字字符串 防止转换为科学计数法 * */ public function add_body($body_arr = array(), $deal_long_num = false){ $body_html = '<tr>'; if (is_array($body_arr) && !empty($body_arr)){ foreach ($body_arr as $body){ if (!is_array($body)){ $style = $deal_long_num ? 'style="mso-number-format:\'\@\';"' : ''; $body_html .= "<td bgcolor='" . $this->_body_bgcolor . "' align='" . $this->_default_align . "' {$style}>" . $this->get_value($body) . "</td>\n"; }else { $align = isset($body[1]) ? $body[1] : $this->_default_align; $style = isset($body[2]) ? $body[2] : ''; $other = isset($body[3]) ? $body[3] : []; if (!empty($style)){ $style = $deal_long_num ? (rtrim($style, ';"') . ";mso-number-format:'\@';" . '"') : $style; }else{ $style = $deal_long_num ? 'style="mso-number-format:\'\@\';"' : ''; } $body_html .= "<td bgcolor='" . $this->_body_bgcolor . "' align='" . $align ."' " . $style . ""; if(!empty($other) && is_array($other)){ foreach($other as $k => $v){ $body_html .= " {$k}='{$v}' "; } } $body_html .= ">" . $this->get_value($body[0]) . "</td>\n"; } } } $body_html .= "</tr>\n"; $this->_body .= $body_html; } /** * 下载excel文件 */ public function downLoad($filename = ''){ $this->add_talbe(); $chare_set = $this->_default_charset; $down_content = '<meta http-equiv="Content-Type" content="text/html; charset=' . $chare_set . '" />' . "\n"; $down_content .= $this->_common_style; foreach ($this->_tables as $t_key => $table){ if (empty($table['head']) && empty($table['body'])){ continue; } $down_content .= '<table border="1">' . "\n"; $down_content .= $table['head'] . "\n"; $down_content .= $table['body'] . "\n"; $down_content .= '</table>'; if ($this->_table_brs[$t_key]){ $down_content .= "<br/>"; } $down_content .= "\n"; } if(!$filename) { $filename = date('YmdHis',time()).'.xls'; } $ci = &get_instance(); $ci->load->helper('download'); force_download($filename, $down_content); } private function get_value($value){ if (strtolower($this->_default_charset) != 'utf-8'){ return iconv('utf-8', $this->_default_charset, $value); }else{ return $value; } } }
使用举例:
$excel = new Excel_html(); $head = [ ['序号', 50], ['姓名', 100], ['移动电话', 120], ['部门', 120] ]; $excel->add_head($head); $rs = array( array( 'realname' => 'a', 'mobile' => '12345678901', 'department_name' => '测试', ), array( 'realname' => 'b', 'mobile' => '12345678912', 'department_name' => '技术', ), ); foreach($rs as $i => $item){ $excel->add_body([ $i + 1, $item['realname'], $item['mobile'], $item['department_name'], ]); } $excel->downLoad(); exit();
相关推荐:
以上是php导出Excel里HTML内容文件类方法的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。

HTML、CSS和JavaScript是构建现代网页的核心技术:1.HTML定义网页结构,2.CSS负责网页外观,3.JavaScript提供网页动态和交互性,它们共同作用,打造出用户体验良好的网站。

在React中使用HTML渲染组件和数据可以通过以下步骤实现:使用JSX语法:React使用JSX语法将HTML结构嵌入JavaScript代码中,编译后操作DOM。组件与HTML结合:React组件通过props传递数据,动态生成HTML内容,如。数据流管理:React的数据流是单向的,从父组件传递到子组件,确保数据流动可控,如App组件传递name到Greeting。基本用法示例:使用map函数渲染列表,需添加key属性,如渲染水果列表。高级用法示例:使用useState钩子管理状态,实现动

多次调用session_start()会导致警告信息和可能的数据覆盖。1)PHP会发出警告,提示session已启动。2)可能导致session数据意外覆盖。3)使用session_status()检查session状态,避免重复调用。

IIS和PHP可以兼容,通过FastCGI实现。1.IIS通过配置文件将.php文件请求转发给FastCGI模块。2.FastCGI模块启动PHP进程处理请求,提高性能和稳定性。3.实际应用中需注意配置细节、错误调试和性能优化。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

AI可以帮助优化Composer的使用,具体方法包括:1.依赖管理优化:AI分析依赖关系,建议最佳版本组合,减少冲突。2.自动化代码生成:AI生成符合最佳实践的composer.json文件。3.代码质量提升:AI检测潜在问题,提供优化建议,提高代码质量。这些方法通过机器学习和自然语言处理技术实现,帮助开发者提高效率和代码质量。

Laravel优化Web开发流程的方法包括:1.使用路由系统管理URL结构;2.利用Blade模板引擎简化视图开发;3.通过队列处理耗时任务;4.使用EloquentORM简化数据库操作;5.遵循最佳实践提高代码质量和可维护性。
