国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > CMS > 織夢(mèng)DEDE > 正文

DedeCMS織夢(mèng)自定義表單導(dǎo)出Excel文檔

2024-07-12 09:08:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

DedeCMS自定義表單功能一般,但也滿足了大多數(shù)人的需求。需要查看表單需要登錄后臺(tái),如果用戶提交的訂單并發(fā)送到郵箱也不能全部統(tǒng)一導(dǎo)出,在月度或季度的時(shí)候,就比較麻煩。

前面做過(guò)一個(gè)關(guān)于學(xué)校報(bào)名網(wǎng)站的二次開發(fā),需要用到這個(gè)功能,分享一個(gè)DedeCMS自定義表單導(dǎo)出功能的教程,比較簡(jiǎn)單,只需要修改兩個(gè)文件,不需要下載第三方SDK(PHPExcel)開發(fā)包,感興趣的可以自己下載,本帖后有說(shuō)明。

DedeCMS表單生成Excel推薦方法

1、打開/dede/templets/diy_main.htm 找到

前臺(tái)預(yù)覽</a>

        后面增加

| <a href="diy_list.php?action=push&diyid={dede:field.diyid/}" target="_blank">導(dǎo)出Excel</a>

2、打開/dede/diy_list.php 找到

array('post', 'list', 'edit', 'check', 'delete'))

        在 'delete' 后面增加 ,'push',如下

array('post', 'list', 'edit', 'check', 'delete','push'))

        在最下面找到

else{    showmsg('未定義操作', "-1");}

        在這段之前增加代碼

else if($action == 'push'){	header("Content-type:application/vnd.ms-excel");	header("Content-Disposition:attachment;filename={$diy->name}_".date("Y-m-d").".xls");//表格命名方式	$fieldlist = $diy->getFieldList();	echo "<table><tr>";	foreach($fieldlist as $field=>$fielddata)	{		echo "<th>{$fielddata[0]}</th>";	}	echo "<th>狀態(tài)</th>";	echo "</tr>";	$sql = "SELECT * FROM {$diy->table} ORDER BY id DESC";	$dsql->SetQuery($sql);	$dsql->Execute('t');	while($arr = $dsql->GetArray('t'))	{		echo "<tr>";		foreach($fieldlist as $key => $field)		{			echo "<td>".$arr[$key]."</td>";		}		$status = $arr['ifcheck'] == 1 ? '已審核' : '未審核';		echo "<td>".$status."</td>";		echo "</tr>";	}	echo "</table>";}

        導(dǎo)出來(lái)的文件不帶格式,可以根據(jù)自己的需要添加、修改。

DedeCMS第三方SDK生成并導(dǎo)出Excel

1.下載PHPExcel的SDK,下載地址:https://github.com/PHPOffice/PHPExcel。

2.將SDK解壓之后的Class文件拷貝到自己的項(xiàng)目,如本例的放在根目錄下。

        打開/dede/templets/diy_main.htm 找到

前臺(tái)預(yù)覽</a>

        后面增加

| <a href="diy_list.php?action=push&diyid={dede:field.diyid/}" target="_blank">導(dǎo)出Excel</a>

        打開/dede/diy_list.php 增加如下代碼。

else if($action == 'push'){...}

        上面省略號(hào)(...)的內(nèi)容如下,代碼比較多,分別進(jìn)行說(shuō)明

/* * *Excel文件讀取 *  */function excelToArray(){  require_once dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php';  //項(xiàng)目路徑//加載excel文件  $filename = dirname(__FILE__).'/result.xlsx'; //根目錄 $objPHPExcelReader = PHPExcel_IOFactory::load($filename);    $sheet = $objPHPExcelReader->getSheet(0);        // 讀取第一個(gè)工作表(編號(hào)從 0 開始)  $highestRow = $sheet->getHighestRow();           // 取得總行數(shù)  $highestColumn = $sheet->getHighestColumn();     // 取得總列數(shù)  $arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z');  // 一次讀取一列  $res_arr = array();  for ($row = 2; $row <= $highestRow; $row++) {  $row_arr = array();  for ($column = 0; $arr[$column] != 'F'; $column++) {  $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();  $row_arr[] = $val;  }  $res_arr[] = $row_arr;  }  return $res_arr;  }  /* * 創(chuàng)建(導(dǎo)出)Excel數(shù)據(jù)表格  * @param  array   $list        要導(dǎo)出的數(shù)組格式的數(shù)據(jù)  * @param  string  $filename    導(dǎo)出的Excel表格數(shù)據(jù)表的文件名  * @param  array   $indexKey    $list數(shù)組中與Excel表格表頭$header中每個(gè)項(xiàng)目對(duì)應(yīng)的字段的名字(key值)  * @param  array   $startRow    第一條數(shù)據(jù)在Excel表格中起始行  * @param  [bool]  $excel2007   是否生成Excel2007(.xlsx)以上兼容的數(shù)據(jù)表  * 比如: $indexKey與$list數(shù)組對(duì)應(yīng)關(guān)系如下:  *     $indexKey = array('id','username','sex','age');  *     $list = array(array('id'=>1,'username'=>'YQJ','sex'=>'男','age'=>24));  */  function exportExcel($list,$filename,$indexKey,$startRow=1,$excel2007=false){  //文件引入  require_once APP_ROOT.'/Classes/PHPExcel.php';  require_once APP_ROOT.'/Classes/PHPExcel/Writer/Excel2007.php';  if(empty($filename)) $filename = time();  if( !is_array($indexKey)) return false;  $header_arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z');  //初始化PHPExcel()  $objPHPExcel = new PHPExcel();  //設(shè)置保存版本格式  if($excel2007){  $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);  $filename = $filename.'.xlsx';  }else{$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);  $filename = $filename.'.xls';  }  //接下來(lái)就是寫數(shù)據(jù)到表格里面去  $objActSheet = $objPHPExcel->getActiveSheet();  //$startRow = 1;  foreach ($list as $row) {  foreach ($indexKey as $key => $value){  //這里是設(shè)置單元格的內(nèi)容  $objActSheet->setCellValue($header_arr[$key].$startRow,$row[$value]);  }  $startRow++;  }  // 下載這個(gè)表格,在瀏覽器輸出  header("Pragma: public");  header("Expires: 0");  header("Cache-Control:must-revalidate, post-check=0, pre-check=0");  header("Content-Type:application/force-download");  header("Content-Type:application/vnd.ms-execl");  header("Content-Type:application/octet-stream");  header("Content-Type:application/download");;  header('Content-Disposition:attachment;filename='.$filename.'');  header("Content-Transfer-Encoding:binary");  $objWriter->save('php://output');  }  /* *導(dǎo)出文件,還可以設(shè)置模板 * */function exportExcel($list,$filename,$indexKey=array()){  require_once dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php';  require_once dirname(__FILE__) . '/Classes/PHPExcel.php';  require_once dirname(__FILE__) . '/Classes/PHPExcel/Writer/Excel2007.php';  $header_arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z');  //$objPHPExcel = new PHPExcel();                        //初始化PHPExcel(),不使用模板  $template = dirname(__FILE__).'/template.xls';          //使用模板  $objPHPExcel = PHPExcel_IOFactory::load($template);     //加載excel文件,設(shè)置模板  $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);  //設(shè)置保存版本格式  //接下來(lái)就是寫數(shù)據(jù)到表格里面去  $objActSheet = $objPHPExcel->getActiveSheet();  $objActSheet->setCellValue('A2',  "活動(dòng)名稱:江南極客");  $objActSheet->setCellValue('C2',  "導(dǎo)出時(shí)間:".date('Y-m-d H:i:s'));  $i = 4;  foreach ($list as $row) {  foreach ($indexKey as $key => $value){  //這里是設(shè)置單元格的內(nèi)容  $objActSheet->setCellValue($header_arr[$key].$i,$row[$value]);  }  $i++;  }  // 1.保存至本地Excel表格  //$objWriter->save($filename.'.xls');  // 2.接下來(lái)當(dāng)然是下載這個(gè)表格了,在瀏覽器輸出就好了  header("Pragma: public");  header("Expires: 0");  header("Cache-Control:must-revalidate, post-check=0, pre-check=0");  header("Content-Type:application/force-download");  header("Content-Type:application/vnd.ms-execl");  header("Content-Type:application/octet-stream");  header("Content-Type:application/download");;  header('Content-Disposition:attachment;filename="'.$filename.'.xls"');  header("Content-Transfer-Encoding:binary");  $objWriter->save('php://output');  }  
/* *導(dǎo)出文件,還可以設(shè)置模板 * */function exportExcel($list,$filename,$indexKey=array()){  require_once dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php';  require_once dirname(__FILE__) . '/Classes/PHPExcel.php';  require_once dirname(__FILE__) . '/Classes/PHPExcel/Writer/Excel2007.php';  $header_arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z');  //$objPHPExcel = new PHPExcel();                        //初始化PHPExcel(),不使用模板  $template = dirname(__FILE__).'/template.xls';          //使用模板  $objPHPExcel = PHPExcel_IOFactory::load($template);     //加載excel文件,設(shè)置模板  $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);  //設(shè)置保存版本格式  //接下來(lái)就是寫數(shù)據(jù)到表格里面去  $objActSheet = $objPHPExcel->getActiveSheet();  $objActSheet->setCellValue('A2',  "活動(dòng)名稱:江南極客");  $objActSheet->setCellValue('C2',  "導(dǎo)出時(shí)間:".date('Y-m-d H:i:s'));  $i = 4;  foreach ($list as $row) {  foreach ($indexKey as $key => $value){  //這里是設(shè)置單元格的內(nèi)容  $objActSheet->setCellValue($header_arr[$key].$i,$row[$value]);  }  $i++;  }  // 1.保存至本地Excel表格  //$objWriter->save($filename.'.xls');  // 2.接下來(lái)當(dāng)然是下載這個(gè)表格了,在瀏覽器輸出就好了  header("Pragma: public");  header("Expires: 0");  header("Cache-Control:must-revalidate, post-check=0, pre-check=0");  header("Content-Type:application/force-download");  header("Content-Type:application/vnd.ms-execl");  header("Content-Type:application/octet-stream");  header("Content-Type:application/download");;  header('Content-Disposition:attachment;filename="'.$filename.'.xls"');  header("Content-Transfer-Encoding:binary");  $objWriter->save('php://output');  }  

設(shè)置一個(gè)excel模板

使用該模板導(dǎo)出數(shù)據(jù)

除此之外還可以對(duì)表格屬性做很多自定義。感興趣的自己看看吧!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 淮北市| 湖口县| 抚松县| 东平县| 临猗县| 鸡西市| 车险| 宁乡县| 鹤壁市| 平阴县| 成安县| 湖北省| 高淳县| 西平县| 威信县| 鄂尔多斯市| 东宁县| 上思县| 勐海县| 临夏县| 岳普湖县| 涞源县| 商洛市| 阿拉尔市| 大名县| 丽江市| 盐亭县| 丰县| 高州市| 铜陵市| 岗巴县| 将乐县| 渭南市| 金溪县| 比如县| 宕昌县| 中山市| 瑞昌市| 元氏县| 贡觉县| 龙江县|