| 
       下面我来给大家介绍在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'; 
 
	-  
 
	- $data = new Spreadsheet_Excel_Reader(); 
 
	-  
 
	- $data->setOutputEncoding('gbk'); 
 
	-  
 
	- $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++) { 
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-     $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;   
 
	- 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) |