用PHP生成excel文件到指定目錄
最近公司要生成報表,用PHP生成。
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");
我百度了下,貌似這個很快能夠?qū)崿F(xiàn),但是這個文件卻是生成在在瀏覽器下載的地方,
我想把生成的文件生成到指定的目錄,這樣能否實現(xiàn)呢?
還有,可以往里面插入圖片嗎?
PHPExcel是英文的,看了半天沒看懂。有沒有直接生成的例子看?。?/p>
下面我們附上例子:
/** +---------------------------------------------------------- * 導(dǎo)入所需的類庫 同java的Import * 本函數(shù)有緩存功能 +---------------------------------------------------------- * @param string $class 類庫命名空間字符串 * @param string $baseUrl 起始路徑 * @param string $ext 導(dǎo)入的文件擴展名 +---------------------------------------------------------- * @return boolen +---------------------------------------------------------- */ function import($class, $baseUrl = '', $ext='.class.php') { static $_file = array(); $class = str_replace(array('.', '#'), array('/', '.'), $class); if ('' === $baseUrl && false === strpos($class, '/')) { // 檢查別名導(dǎo)入 return alias_import($class); } if (isset($_file[$class . $baseUrl])) return true; else $_file[$class . $baseUrl] = true; $class_strut = explode('/', $class); if (empty($baseUrl)) { if ('@' == $class_strut[0] || APP_NAME == $class_strut[0]) { //加載當(dāng)前項目應(yīng)用類庫 $baseUrl = dirname(LIB_PATH); $class = substr_replace($class, basename(LIB_PATH).'/', 0, strlen($class_strut[0]) + 1); }elseif ('think' == strtolower($class_strut[0])){ // think 官方基類庫 $baseUrl = CORE_PATH; $class = substr($class,6); }elseif (in_array(strtolower($class_strut[0]), array('org', 'com'))) { // org 第三方公共類庫 com 企業(yè)公共類庫 $baseUrl = LIBRARY_PATH; }else { // 加載其他項目應(yīng)用類庫 $class = substr_replace($class, '', 0, strlen($class_strut[0]) + 1); $baseUrl = APP_PATH . '../' . $class_strut[0] . '/'.basename(LIB_PATH).'/'; } } if (substr($baseUrl, -1) != '/') $baseUrl .= '/'; $classfile = $baseUrl . $class . $ext; if (!class_exists(basename($class),false)) { // 如果類不存在 則導(dǎo)入類庫文件 return require_cache($classfile); } } /** * 導(dǎo)出EXCEL表格 * @param array $data 數(shù)據(jù),二維數(shù)組,每條數(shù)據(jù)一條記錄 * @param array $title 每列數(shù)據(jù)的字段名,一唯數(shù)組,必須和數(shù)據(jù)順序一致(可省略) * @param string $filename excel名稱 * @param array $field 需要指定導(dǎo)出的數(shù)據(jù)字段,排序必須和title一致,就是和查出數(shù)據(jù)的數(shù)組key值 */ function exportExcel($data='',$title='',$filename='excel',$field=array()){ if(!$data || !is_array($data)) return false; if($filename=='') $filename='excel'; if($field && is_array($field)){//只要導(dǎo)出指定字段,且按這個順序?qū)С? $dateNew=array(); foreach ($data as $k=>$v){ foreach ($field as $fkey){ $dateNew[$k][$fkey]=$v[$fkey]; } } $data=$dateNew; } import("@.ORG.Util.ExcelXml");//調(diào)用導(dǎo)出excel類 $xls = new ExcelXml('UTF-8', false, 'Sheet1'); $xls->addArray($data,$title); $xls->generateXML($filename); }
相關(guān)文章
PHP中ID設(shè)置自增后不連續(xù)的原因分析及解決辦法
這篇文章主要介紹了PHP中ID設(shè)置自增后不連續(xù)的原因分析及解決辦法的相關(guān)資料,需要的朋友可以參考下2016-08-08PHP flush()與ob_flush()的區(qū)別詳解
本篇文章是對PHP中的flush函數(shù)與ob_flush函數(shù)的區(qū)別進行了詳細的分析介紹,需要的朋友參考下2013-06-06ThinkPHP3.2框架使用addAll()批量插入數(shù)據(jù)的方法
這篇文章主要介紹了ThinkPHP3.2框架使用addAll()批量插入數(shù)據(jù)的方法,結(jié)合實例形式分析了thinkPHP針對單條數(shù)據(jù)插入及批量數(shù)據(jù)插入操作的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-03-03Laravel (Lumen) 解決JWT-Auth刷新token的問題
今天小編就為大家分享一篇Laravel (Lumen) 解決JWT-Auth刷新token的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10