本文主要和大家分享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中文網其他相關文章!

負載均衡會影響會話管理,但可以通過會話複製、會話粘性和集中式會話存儲解決。 1.會話複製在服務器間複製會話數據。 2.會話粘性將用戶請求定向到同一服務器。 3.集中式會話存儲使用獨立服務器如Redis存儲會話數據,確保數據共享。

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

PHP會話的替代方案包括Cookies、Token-basedAuthentication、Database-basedSessions和Redis/Memcached。 1.Cookies通過在客戶端存儲數據來管理會話,簡單但安全性低。 2.Token-basedAuthentication使用令牌驗證用戶,安全性高但需額外邏輯。 3.Database-basedSessions將數據存儲在數據庫中,擴展性好但可能影響性能。 4.Redis/Memcached使用分佈式緩存提高性能和擴展性,但需額外配

Sessionhijacking是指攻擊者通過獲取用戶的sessionID來冒充用戶。防範方法包括:1)使用HTTPS加密通信;2)驗證sessionID的來源;3)使用安全的sessionID生成算法;4)定期更新sessionID。

本文比較了PHP和ASP.NET,重點是它們對大規模Web應用程序,性能差異和安全功能的適用性。兩者對於大型項目都是可行的,但是PHP是開源和無關的,而ASP.NET,


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。