程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 用PHP生成excel文件到指定目錄

用PHP生成excel文件到指定目錄

編輯:PHP綜合

最近公司要生成報表,用PHP生成。

header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");

我百度了下,貌似這個很快能夠實現,但是這個文件卻是生成在在浏覽器下載的地方,

我想把生成的文件生成到指定的目錄,這樣能否實現呢?

還有,可以往裡面插入圖片嗎?

PHPExcel是英文的,看了半天沒看懂。有沒有直接生成的例子看啊?

下面我們附上例子:

/**
 +----------------------------------------------------------
 * 導入所需的類庫 同java的Import
 * 本函數有緩存功能
 +----------------------------------------------------------
 * @param string $class 類庫命名空間字符串
 * @param string $baseUrl 起始路徑
 * @param string $ext 導入的文件擴展名
 +----------------------------------------------------------
 * @return boolen
 +----------------------------------------------------------
 */
function import($class, $baseUrl = '', $ext='.class.php') {
  static $_file = array();
  $class = str_replace(array('.', '#'), array('/', '.'), $class);
  if ('' === $baseUrl && false === strpos($class, '/')) {
    // 檢查別名導入
    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]) {
      //加載當前項目應用類庫
      $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 企業公共類庫
      $baseUrl = LIBRARY_PATH;
    }else { // 加載其他項目應用類庫
      $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)) {
    // 如果類不存在 則導入類庫文件
    return require_cache($classfile);
  }
}

/**
* 導出EXCEL表格
* @param array $data 數據,二維數組,每條數據一條記錄
* @param array $title 每列數據的字段名,一唯數組,必須和數據順序一致(可省略)
* @param string $filename excel名稱
* @param array $field 需要指定導出的數據字段,排序必須和title一致,就是和查出數據的數組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)){//只要導出指定字段,且按這個順序導出
    $dateNew=array();
    foreach ($data as $k=>$v){
      foreach ($field as $fkey){
        $dateNew[$k][$fkey]=$v[$fkey];
      }
    }
    $data=$dateNew;
  }

  import("@.ORG.Util.ExcelXml");//調用導出excel類
  $xls = new ExcelXml('UTF-8', false, 'Sheet1');
  $xls->addArray($data,$title);
  $xls->generateXML($filename);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved