• 技术文章 >php教程 >php手册

    PHP导入导出Excel文件的方法

    2016-06-13 09:47:11原创550
    下面我来给大家介绍在php中操作excel两个实例,一个是利用PHP-ExcelReader导入excel并输出,另一种是直接输入excel并导出,下面看实例。


    借助PHP-ExcelReader这个开源类,我们可以轻松地导入Excel文件数据,示例代码如下:

    PHP-ExcelReader下载地址:http://sourceforge.net/projects/phpexcelreader/

    例.导入Excel文件

    代码如下 复制代码

    require_once 'Excel/reader.php';
    $data = new Spreadsheet_Excel_Reader();
    $data->setOutputEncoding('gbk');
    $data->read('test.xls');
    for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
    for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
    echo """.$data->sheets[0]['cells'][$i][$j]."",";
    }
    echo "n";
    }
    ?>

    例.phpexcel导到excel

    1. test.php

    代码如下 复制代码

    require_once 'reader.php';

    // ExcelFile($filename, $encoding);
    $data = new Spreadsheet_Excel_Reader();

    // Set output Encoding.
    $data->setOutputEncoding('gbk');

    //”data.xls”是指要导入到mysql中的excel文件
    $data->read('data.xls');

    @ $db = mysql_connect('localhost', 'root', '123456') or
    die("Could not connect to database.");//连接数据库
    mysql_query("set names 'gbk'");//输出中文
    mysql_select_db('mydb'); //选择数据库
    error_reporting(E_ALL ^ E_NOTICE);

    for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
    //以下注释的for循环打印excel表数据
    /*
    for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
    echo """.$data->sheets[0]['cells'][$i][$j]."",";
    }
    echo "n";
    //PHP开源代码


    */
    //以下代码是将excel表数据【3个字段】插入到mysql中,根据你的excel表字段的多少,改写以下代码吧!
    $sql = "INSERT INTO test VALUES('".
    $data->sheets[0]['cells'][$i][1]."','".
    $data->sheets[0]['cells'][$i][2]."','".
    $data->sheets[0]['cells'][$i][3]."')";
    echo $sql.'
    ';
    $res = mysql_query($sql);
    }

    ?>

    例.导出excel文件


    比如我需要一个做php导出 excel的的程序,只需要把相关的数据导出到excel表就可以了,这么简单的操作就不需要用那些类库什么的了。直接用header的方式就可以了:header("Content-type:application/vnd.ms-excel");

    看看代码:

    代码如下 复制代码

    header("Content-type:application/vnd.ms-excel");
    header("Content-Disposition:attachment;filename=Export_test.xls");
    $tab="t"; $br="n";
    $head="编号".$tab."备注".$br;
    //输出内容如下:
    echo $head.$br;
    echo "test321318312".$tab;
    echo "string1";
    echo $br;

    echo "330181199006061234".$tab; //直接输出会被Excel识别为数字类型
    echo "number";
    echo $br;

    echo "="330181199006061234"".$tab; //原样输出需要处理
    echo "string2";
    echo $br;
    ?>

    在导出后会发现一个问题,如果数据是数字会出现一些意想不到的情况。比如,"012345",在excel中会变成"12345";如果输入身份证号码这样的长数字,在excel中会用科学计数法表示出来,并且最后的四位数字会出现偏差,变位0000等情况。这就需要把单元格设置为文本格式,方法是
    echo "="330181199006061234""如果程序是utf-8编码的,还需要用iconv函数去转码,不然是会乱码的,乱码的。

    另word格式导入类似,,指定header就可以了:

    代码如下 复制代码

    header("Content-Type: application/msword");
    header("Content-Disposition: attachment; filename=doc.doc");

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP Curl多线程实现原理与实例详解 下一篇:php SESSION类(购物车类)
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• PHP更新购物车数量(表单部分/PHP处理部分)• PHP5中Cookie与 Session使用详解• PHP之判断用户语言跳转网页• php图片缩放代码-按比例缩放或截取指定大小的缩略图 非常好用的一个方法• 谈PHP闭包特性在实际应用中的问题(1)
    1/1

    PHP中文网