加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > CMS系统 > Dedecms > 正文

织梦DEDECMS使用PHPEXCEL将内容数据导出到excel的方法

发布时间:2020-12-14 04:37:29 所属栏目:Dedecms 来源:网络整理
导读:对于一些企业网站来说,经常需要把网站上的数据导出到EXCEL来进行分析,这里就需要用到PHPEXCEL,可以方便导出网站MYSQL数据库内容到EXCEL总 ? phpexcel是外国人写专门处理从数据库到excel的功能库,下载地址:https://github.com/PHPOffice/PHPExcel 里面有很

对于一些企业网站来说,经常需要把网站上的数据导出到EXCEL来进行分析,这里就需要用到PHPEXCEL,可以方便导出网站MYSQL数据库内容到EXCEL总

? phpexcel是外国人写专门处理从数据库到excel的功能库,下载地址:https://github.com/PHPOffice/PHPExcel

里面有很多的例子,包括excel,csv,word,pdf,htm等从数据库导出来的文件格式,可以参考一下例子。

?

? 笨牛网先把从织梦系统导出来的效果上个图给大家看看:

?

?使用中遇到一个问题,就是以前的时间,在excel是正常显示的,但是,现在加上的时间则显示:1970-01-01,研究了很久,原来字段写错了。本来是pubdate,结果写成了sentdate

?

? 其它都是正常显示的

?

现在就介绍一下从织梦系统导出数据的方法:

?

1.从国外网站下载上面的phpexcel类库,解压后,放到根目录里面。

?

2.然后,写导出程序,这个可以参考这里面的例子写,请注意的是:若你的不行,程序可能会提示404错误,这个就是你的路径没有设置好,刚开始时,我也是这个原因一直弄不对,最后,才发现原来是路径错了。

?

? 这个导出程序主要做如下四步:

?

? ?a. 从织梦中查询出数据

?

? ?b.设置表格

?

? ?c.把数据放入表格

?

? ?c.输出数据到excel里面

?

? 里面的设置大多数都是调用phpexcel类里面的函数,这里不多解释了,看我在文件dedebnxb.php写的代码:

?

?

require_once (DEDEINC . '/common.func.php');
 
if ($action == 'allexport') {
 
    include_once DEDEINC . '/PHPExcel.php';
    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();
 
    $objActSheet = $objPHPExcel->getActiveSheet();
 
    // Set document properties
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")
    ->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")
    ->setDescription("Test document for Office 2007 XLSX,generated using PHP classes.")->setKeywords("office 2007 openxml php")
    ->setCategory("Test result file");
          //www.bnxb.com 笨牛网
    $objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A1','id')
    ->setCellValue('B1','标题')
    ->setCellValue('C1','排序')
    ->setCellValue('D1','出版时间')
    ->setCellValue('E1','关键词')
    ->setCellValue('F1','简介')
    ->setCellValue('G1','发布时间')
    ->setCellValue('H1','会员id')
    ->setCellValue('I1','flag')
    ->setCellValue('J1','栏目id');
    $query = "Select * From `dede_archives` ";
    $dsql->SetQuery($query);
    $dsql->Execute();
 
    $index = 1;
 
    while ($row = $dsql->GetArray()) {
 
        $index++;
        $objPHPExcel->setActiveSheetIndex(0)
        ->setCellValue('A' .
        $index,$row['id'])->setCellValue('B' .
        $index,iconv("gb2312","utf-8",$row['title']))->setCellValue('C' .
        $index,$row['sortrank'])->setCellValue('D' .
        $index,"2015-7-23")->setCellValueExplicit('E' .
        $index,$row['keywords']))->setCellValue('F' .
        $index,$row['description']))->setCellValue('G' .
        $index,gmdate("Y-m-d",$row['pubdate']))->setCellValue('H' .
        $index,$row['mid'])->setCellValue('I' .
        $index,$row['flag'])->setCellValue('J' .
        $index,$row['typeid']);
    }
 
    // Rename worksheetwww.bnxb.com
    $objPHPExcel->getActiveSheet()->setTitle('Simple');
 
    // Set active sheet index to the first sheet,so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);
 
    // Redirect output to a client’s web browser (Excel5)
    header('Content-Type: application/vnd.ms-excel');
 
    header('Content-Disposition: attachment;filename="list.xls"');
    header('Cache-Control: max-age=0');
 
    $objWriter = PHPExcel_IOFactory :: createWriter($objPHPExcel,'Excel5');
    $objWriter->save('php://output');
    exit;
 
}

?

? 特别特别注意:在这个最上面一行要写上你的从网站上下载下来的phpexcel类的路径,也就是把这个类引入到这个文件里面,只有引入到里面才能调用。

?

? 最后,在你的模板里面把下面这二行中的任意一行写在模板里即可:

? ?

? ?

我这里放二行是因为,有的站长可能只需要一个超链接,有的可能需要一个input,二个任选一个即可。

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读