PHP导入导出Excel文件的方法
下面我来给大家介绍在php中操作excel两个实例,一个是利用PHP-ExcelReader导入excel并输出,另一种是直接输入excel并导出,下面看实例。
借助PHP-ExcelReader这个开源类,我们可以轻松地导入Excel文件数据,示例代码如下:
PHP-ExcelReader下载地址:http://sourceforge.net/projects/phpexcelreader/
<?php 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");
看看如下代码如下:
<?php 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" );查看更多关于PHP导入导出Excel文件的方法 - php高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29943