首页  »  站长资讯  »  网站优化

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

2023/03/11 12:27     创新屋收录网     已浏览346次


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

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

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

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



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



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

其它都是正常显示的

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

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

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

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

a. 从织梦中查询出数据

b.设置表格

c.把数据放入表格

d.输出数据到excel里面

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




















01

require_once (DEDEINC . '/common.func.php');











02

 











03

if ($action == 'allexport') {











04

 











05

    include_once DEDEINC . '/PHPExcel.php';











06

    // Create new PHPExcel object











07

    $objPHPExcel = new PHPExcel();











08

 











09

    $objActSheet = $objPHPExcel->getActiveSheet();











10

 











11

    // Set document properties











12

    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")











13

    ->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")











14

    ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("office 2007 openxml php")











15

    ->setCategory("Test result file");











16

          //www.bnxb.com 笨牛网











17

    $objPHPExcel->setActiveSheetIndex(0)











18

    ->setCellValue('A1', 'id')











19

    ->setCellValue('B1', '标题')











20

    ->setCellValue('C1', '排序')











21

    ->setCellValue('D1', '出版时间')











22

    ->setCellValue('E1', '关键词')











23

    ->setCellValue('F1', '简介')











24

    ->setCellValue('G1', '发布时间')











25

    ->setCellValue('H1', '会员id')











26

    ->setCellValue('I1', 'flag')











27

    ->setCellValue('J1', '栏目id');











28

    $query = "Select * From `dede_archives` ";











29

    $dsql->SetQuery($query);











30

    $dsql->Execute();











31

 











32

    $index = 1;











33

 











34

    while ($row = $dsql->GetArray()) {











35

 











36

        $index++;











37

        $objPHPExcel->setActiveSheetIndex(0)











38

        ->setCellValue('A' .











39

        $index, $row['id'])->setCellValue('B' .











40

        $index, iconv("gb2312","utf-8",$row['title']))->setCellValue('C' .











41

        $index, $row['sortrank'])->setCellValue('D' .











42

        $index, "2015-7-23")->setCellValueExplicit('E' .











43

        $index, iconv("gb2312","utf-8",$row['keywords']))->setCellValue('F' .











44

        $index, iconv("gb2312","utf-8",$row['description']))->setCellValue('G' .











45

        $index, gmdate("Y-m-d",$row['pubdate']))->setCellValue('H' .











46

        $index, $row['mid'])->setCellValue('I' .











47

        $index, $row['flag'])->setCellValue('J' .











48

        $index, $row['typeid']);











49

    }











50

 











51

    // Rename worksheetwww.bnxb.com











52

    $objPHPExcel->getActiveSheet()->setTitle('Simple');











53

 











54

    // Set active sheet index to the first sheet, so Excel opens this as the first sheet











55

    $objPHPExcel->setActiveSheetIndex(0);











56

 











57

    // Redirect output to a client’s web browser (Excel5)











58

    header('Content-Type: application/vnd.ms-excel');











59

 











60

    header('Content-Disposition: attachment;filename="list.xls"');











61

    header('Cache-Control: max-age=0');











62

 











63

    $objWriter = PHPExcel_IOFactory :: createWriter($objPHPExcel, 'Excel5');











64

    $objWriter->save('php://output');











65

    exit;











66

 











67

}






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

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



execl

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