1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | /** * 导出excel * @param array $column * eg: $column = [ * 'username' => '姓名', * 'age' => '年龄', * 'sex' => '性别' * ] * @param array $data * eg: $data = [ * ['username' => 'yht', 'age'=>20, 'sex'=>'男'], * ['username' => 'jsh', 'age'=>18, 'sex'=>'女'], * ['username' => 'klerk', 'age'=>25, 'sex'=>'男'], * ] */ public static function exportExcel( $column , $data ) { $keys = array_keys ( $column ); header( "Content-type:application/vnd.ms-excel" ); header( "Content-Disposition:attachment;filename=export_data.xls" ); $html = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">' ; $html .= ' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' ; $html .= ' <html> ' ; $html .= ' <head> ' ; $html .= ' <meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> ' ; $html .= ' <style id="Classeur1_16681_Styles"></style> ' ; $html .= ' </head> ' ; $html .= ' <body border=1> ' ; $html .= ' <div id="Classeur1_16681" align=center x:publishsource="Excel"> ' ; $html .= ' <table x:str border=1 cellpadding=1 cellspacing=1 width=100% style="border-collapse: collapse">' ; $html .= ' <tr>' ; foreach ( $column as $key => $value ){ $html .= ' <td>' . Html::encode( $value ) . '</td>' ; } $html .= ' </tr>' ; if ( $data ) { foreach ( $data as $key => $value ) { $html .= ' <tr>' ; foreach ( $keys as $val ){ $html .= ' <td>' . $value [ $val ] . '</td>' ; } $html .= ' </tr>' ; } } $html .= ' </table> ' ; $html .= ' </div> ' ; $html .= ' </body> ' ; $html .= ' </html> ' ; echo $html ; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· 终于决定:把自己家的能源管理系统开源了!
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· 了解 ASP.NET Core 中的中间件
· 实现windows下简单的自动化窗口管理
· 【C语言学习】——命令行编译运行 C 语言程序的完整流程
2013-09-22 使用phpexcel导出到xls文件的时候出现乱码解决