php中使用PHPExcel读写excel(xls)文件的方法

首先从GitHub上下载 excel的相关类库

下载地址:
https://github.com/PHPOffice/PHPExcel

以下是从excel中获取数据

 1  <?php
 2 /**
 3  *
 4  * @copyright 2007-2012 Xiaoqiang.
 5  * @author Xiaoqiang.Wu <jamblues@gmail.com>
 6  * @version 1.01
 7  */
 8  
 9 error_reporting(E_ALL);
10 date_default_timezone_set('Asia/ShangHai');
11  
12 /** PHPExcel_IOFactory */
13 require_once 'Classes/PHPExcel/IOFactory.php';
14  
15 // Check prerequisites
16 if (!file_exists("report.xls")) {
17     exit("not found report.xls.\n");
18 }
19  
20 $reader = PHPExcel_IOFactory::createReader('Excel5'); //设置以Excel5格式(Excel97-2003工作簿)
21 $PHPExcel = $reader->load("report.xls"); // 载入excel文件
22 $sheet = $PHPExcel->getSheet(0); // 读取第一個工作表
23 $highestRow = $sheet->getHighestRow(); // 取得总行数
24 $highestColumm = $sheet->getHighestColumn(); // 取得总列数
25  
26 /** 循环读取每个单元格的数据 */
27 for ($row = 1; $row <= $highestRow; $row++){//行数是以第1行开始
28     for ($column = 'A'; $column <= $highestColumm; $column++) {//列数是以A列开始
29         $dataset[] = $sheet->getCell($column.$row)->getValue();
30         echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."<br />";
31     }
32 }
33  
34 ?>

 

下面的是从将数据插入到excel中

 1 <?php
 2   //向xls文件写入内容
 3   error_reporting(E_ALL);
 4   ini_set('display_errors', TRUE);  
 5   include 'Classes/PHPExcel.php';      
 6   include 'Classes/PHPExcel/IOFactory.php'; 
 7   //$data:xls文件内容正文
 8   //$title:xls文件内容标题
 9   //$filename:导出的文件名
10   //$data和$title必须为utf-8码,否则会写入FALSE值
11   function write_xls($data=array(), $title=array(), $filename='report'){
12     $objPHPExcel = new PHPExcel();
13     //设置文档属性,设置中文会产生乱码,需要转换成utf-8格式!!
14     // $objPHPExcel->getProperties()->setCreator("云舒")
15                // ->setLastModifiedBy("云舒")
16                // ->setTitle("产品URL导出")
17                // ->setSubject("产品URL导出")
18                // ->setDescription("产品URL导出")
19                // ->setKeywords("产品URL导出");
20     $objPHPExcel->setActiveSheetIndex(0);
21      
22     $cols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
23     //设置www.jb51.net标题
24     for($i=0,$length=count($title); $i<$length; $i++) {
25       //echo $cols{$i}.'1';
26       $objPHPExcel->getActiveSheet()->setCellValue($cols{$i}.'1', $title[$i]);
27     }
28     //设置标题样式
29     $titleCount = count($title);
30     $r = $cols{0}.'1';
31     $c = $cols{$titleCount}.'1';
32     $objPHPExcel->getActiveSheet()->getStyle("$r:$c")->applyFromArray(
33       array(
34         'font'  => array(
35           'bold'   => true
36         ),
37         'alignment' => array(
38           'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,
39         ),
40         'borders' => array(
41           'top'   => array(
42             'style' => PHPExcel_Style_Border::BORDER_THIN
43           )
44         ),
45         'fill' => array(
46           'type'    => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
47           'rotation'  => 90,
48           'startcolor' => array(
49             'argb' => 'FFA0A0A0'
50           ),
51           'endcolor'  => array(
52             'argb' => 'FFFFFFFF'
53           )
54         )
55       )
56     );
57      
58     $i = 0;
59     foreach($data as $d) { //这里用foreach,支持关联数组和数字索引数组
60       $j = 0;
61       foreach($d as $v) {  //这里用foreach,支持关联数组和数字索引数组
62         $objPHPExcel->getActiveSheet()->setCellValue($cols{$j}.($i+2), $v);
63         $j++;
64       }
65         $i++;
66     }
67     // 生成2003excel格式的xls文件
68     header('Content-Type: application/vnd.ms-excel');
69     header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
70     header('Cache-Control: max-age=0');
71  
72     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
73     $objWriter->save('php://output');
74   }
75 
76 
77 
78 
79 
80 //传递数组的形式进行 导出excel文件
81   $array = array(
82     array(1111,'名称','品牌','商品名','http://www.jb51.net'),
83     array(1111,'名称','品牌','商品名','http://www.jb51.net'),
84     array(1111,'名称','品牌','商品名','http://www.jb51.net'),
85     array(1111,'名称','品牌','商品名','http://www.jb51.net'),
86     array(1111,'名称','品牌','商品名','http://www.jb51.net'),
87   );
88   write_xls($array,array('商品id','供应商名称','品牌','商品名','URL'),'report');
89    
90 ?>

 

转载于:https://www.cnblogs.com/xs-yqz/p/6398972.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值