php中使用PHPExcel操作excel(xls)文件

   PHPExcel是php的一个插件,它可以实现读取excel文件也就是xls文件了,下面我们就来看一个PHPExcel操作excel(xls)文件例子,希望能帮助到各位。

  读取中文的xls、csv文件会有问题,网上找了下资料,发现PHPExcel类库好用  1、读取xls文件内容

 代码如下  

<?php
    //向xls文件写入内容
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);    
    include 'Classes/PHPExcel.php';            
    include 'Classes/PHPExcel/IOFactory.php';  
    //$data:xls文件内容正文
    //$title:xls文件内容标题
    //$filename:导出的文件名
    //$data和$title必须为utf-8码,否则会写入FALSE值
    function write_xls($data=array(), $title=array(), $filename='report'){
        $objPHPExcel = new PHPExcel();
        //设置文档属性,设置中文会产生乱码,待完善...
        // $objPHPExcel->getProperties()->setCreator("云舒")
                             // ->setLastModifiedBy("云舒")
                             // ->setTitle("产品URL导出")
                             // ->setSubject("产品URL导出")
                             // ->setDescription("产品URL导出")
                             // ->setKeywords("产品URL导出");
        $objPHPExcel->setActiveSheetIndex(0);
        
        $cols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
        //设置www.111cn.net标题
        for($i=0,$length=count($title); $i<$length; $i++) {
            //echo $cols{$i}.'1';
            $objPHPExcel->getActiveSheet()->setCellValue($cols{$i}.'1', $title[$i]);
        }
        //设置标题样式
        $titleCount = count($title);
        $r = $cols{0}.'1';
        $c = $cols{$titleCount}.'1';
        $objPHPExcel->getActiveSheet()->getStyle("$r:$c")->applyFromArray(
            array(
                'font'    => array(
                    'bold'      => true
                ),
                'alignment' => array(
                    'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,
                ),
                'borders' => array(
                    'top'     => array(
                        'style' => PHPExcel_Style_Border::BORDER_THIN
                    )
                ),
                'fill' => array(
                    'type'       => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
                    'rotation'   => 90,
                    'startcolor' => array(
                        'argb' => 'FFA0A0A0'
                    ),
                    'endcolor'   => array(
                        'argb' => 'FFFFFFFF'
                    )
                )
            )
        );
        
        $i = 0;
        foreach($data as $d) {  //这里用foreach,支持关联数组和数字索引数组
            $j = 0;
            foreach($d as $v) {   //这里用foreach,支持关联数组和数字索引数组
                $objPHPExcel->getActiveSheet()->setCellValue($cols{$j}.($i+2), $v);
                $j++;
            }
$i++;
        }
        // 生成2003excel格式的xls文件
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
        header('Cache-Control: max-age=0');

        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
    }
    $array = array(
        array(1111,'名称','品牌','商品名','http://www.baidu.com'),
        array(1111,'名称','品牌','商品名','http://www.baidu.com'),
        array(1111,'名称','品牌','商品名','http://www.baidu.com'),
        array(1111,'名称','品牌','商品名','http://www.baidu.com'),
        array(1111,'名称','品牌','商品名','http://www.baidu.com'),
    );
    write_xls($array,array('商品id','供应商名称','品牌','商品名','URL'),'report');
    
?>

  2、向xls文件写内容

 代码如下  
<?php
    //获取数据库数据(mysqli预处理学习)
    $config = array(
        'DB_TYPE'=>'mysql',
        'DB_HOST'=>'localhost',
        'DB_NAME'=>'test',
        'DB_USER'=>'root',
        'DB_PWD'=>'root',
        'DB_PORT'=>'3306',
    );
    function getProductIdByName($name) {
        global $config;
        $id = false;
        
        $mysqli = new mysqli($config['DB_HOST'], $config['DB_USER'], $config['DB_PWD'], $config['DB_NAME']);
        if(mysqli_connect_error()) {   //兼容 < php5.2.9 OO way:$mysqli->connect_error
            die("连接失败,错误码:".mysqli_connect_errno()."错误信息:".mysqli_connect_error());
        }
        //设置连接数据库的编码,不要忘了设置
        $mysqli->set_charset("gbk");
        //中文字符的编码要与数据库一致,若没设置,结果为null
        $name = iconv("utf-8", "gbk//IGNORE", $name);
        if($mysqli_stmt = $mysqli->prepare("select id from 137_product where name like ?")) {
            $mysqli_stmt->bind_param("s", $name);
            $mysqli_stmt->execute();
            $mysqli_stmt->bind_result($id);
            $mysqli_stmt->fetch();
            $mysqli_stmt->close();
        }
        $mysqli->close(); 
        return $id;   //得到的是gbk码(同数据库编码)
    }   
    $id = getProductIdByName('%伊奈卫浴伊奈分体座便器%');
    var_dump($id);
?>

  OK...

时间: 2024-11-03 13:12:42

php中使用PHPExcel操作excel(xls)文件的相关文章

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

本文实例讲述了PHP中使用PHPExcel读写excel(xls)文件的方法,非常实用.分享给大家供大家参考之用.具体方法如下: 很多PHP类库在读取中文的xls.csv文件时会有问题,网上找了下资料,发现PHPExcel类库好用,官网地址为:http://phpexcel.codeplex.com/.现将PHPExcel读写Excel的方法分别叙述如下: 1.读取xls文件内容 <?php //向xls文件写入内容 error_reporting(E_ALL); ini_set('displa

使用PHPExcel操作Excel用法实例分析

 这篇文章主要介绍了使用PHPExcel操作Excel用法,实例分析了使用PHPExcel进行读写及生成等常用技巧,非常具有实用价值,需要的朋友可以参考下     本文实例分析了使用PHPExcel操作Excel用法.分享给大家供大家参考.具体分析如下: PHPExcel下载地址: http://www.codeplex.com/PHPExcel http://www.phpexcel.net 开发包Tests目录有详细使用实例 支持中文,注意文件编码 文件保存为utf-8 1.header部分

【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)

[PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件->找一个好用的第三方库吧->在Composer的Packages里找一个吧->PHPExcel这么多收藏,就它了! PHPExcel 概述 PHPExcel is a library written in pure PHP and providing a set of classes th

Yii中使用PHPExcel导出Excel的方法_php实例

本文实例讲述了Yii中使用PHPExcel导出Excel的方法.分享给大家供大家参考.具体分析如下: 最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法. 1.首先在cofig/main.php中添加对PHPExcel的引用,我的方法是这样,代码如下: 复制代码 代码如下: // autoloading model and component classes     'import'=>array(         /*'application.modu

使用PHPExcel操作Excel用法实例分析_php技巧

本文实例分析了使用PHPExcel操作Excel用法.分享给大家供大家参考.具体分析如下: PHPExcel下载地址: http://www.codeplex.com/PHPExcel http://www.phpexcel.net 开发包Tests目录有详细使用实例  支持中文,注意文件编码   文件保存为utf-8 1.header部分: header("Content-Type:application/vnd.ms-excel"); header("Content-Di

怎样把Excel.xls文件里的sheet1,sheet2,sheet3。。。的数据批量传到数据库

问题描述 怎样把Excel.xls文件里的sheet1,sheet2,sheet3...的数据批量传到数据库 解决方案 解决方案二:用excel的连接字符串把它当一个库打开然后sheet1,sheet2,sheet3...就是这个库中的不同的表最后Excel文档中的行就是元组,列就是对应的投影了.再根据你的业务弄到数据库中解决方案三:楼上说的没错,你把excel当作一个表,对于excel的操作有很多的方法,你可以先取得sheet的数量,进行For循环,然后读每一个sheet,一个sheet相当于

完美解决phpexcel导出到xls文件出现乱码的问题_php技巧

解决方法如下所示: <?php include 'global.php'; $ids = $_GET['ids']; $sql = "select * from crm_cost_end where id in ( {$ids} )"; $result = $db->findAll($sql); //echo $result[1]['sn']; //创建一个excel对象 $objPHPExcel = new PHPExcel(); // Set properties $o

文件传输-下面c语言中要将操作结果存入文件(当遇到#时为止)。程序运行时为什么老是中断出错?

问题描述 下面c语言中要将操作结果存入文件(当遇到#时为止).程序运行时为什么老是中断出错? #include(stdio.h)#include(stdlib.h)void main(){FILE *fp;char ch;if((fp=fopen(""C:UsersAdministratorDesktopEnglish.doc""w""))=NULL){ printf(""cannot open filen"&quo

PHP把excel(xls)文件导入mysql数据库

昨晚一个客户联系我做网站,提出的要求是需要把客户提供的excel文件里面的数据导入到mysql数据库,最常用的方法就是先把xls文件导出为csv格式的文件,然后在解析csv格式的文件导入到mysql数据库.方法比较冗余,而且分好几步进行,很不方便,断桥残雪今天介绍一种方法是直接跳过csv的中间环节,直接把excel文件导入mysql数据库. 首先我们需要下载PHP-ExcelReader这是一个开源的项目,主要是来解析excel的文件,下载地址:http://sourceforge.net/pr