国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

PHP導(dǎo)入導(dǎo)出Excel文件的方法

2024-05-04 21:47:30
字體:
供稿:網(wǎng)友

下面我來給大家介紹在php中操作excel兩個實例,一個是利用PHP-ExcelReader導(dǎo)入excel并輸出,另一種是直接輸入excel并導(dǎo)出,下面看實例。

借助PHP-ExcelReader這個開源類,我們可以輕松地導(dǎo)入Excel文件數(shù)據(jù),示例代碼如下:

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

  1. <?php  
  2. require_once 'Excel/reader.php';  
  3. $data = new Spreadsheet_Excel_Reader();  
  4. $data->setOutputEncoding('gbk');  
  5. $data->read('test.xls');  
  6. for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {  
  7.     for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {  
  8.         echo """.$data->sheets[0]['cells'][$i][$j]."",";  
  9.     }  
  10.     echo "n";  
  11. }  
  12. ?> 

例.phpexcel導(dǎo)到excel,1.test.php,代碼如下:

  1. require_once 'reader.php'
  2. // ExcelFile($filename, $encoding); 
  3. $data = new Spreadsheet_Excel_Reader(); 
  4. // Set output Encoding. 
  5. $data->setOutputEncoding('gbk'); 
  6. //”data.xls”是指要導(dǎo)入到mysql中的excel文件 
  7. $data->read('data.xls'); 
  8. $db = mysql_connect('localhost''root''123456'or  
  9.        die("Could not connect to database.");//連接數(shù)據(jù)庫 
  10. mysql_query("set names 'gbk'");//輸出中文 
  11. mysql_select_db('mydb');       //選擇數(shù)據(jù)庫 
  12. error_reporting(E_ALL ^ E_NOTICE); 
  13. for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) { 
  14. //以下注釋的for循環(huán)打印excel表數(shù)據(jù) 
  15. /* 
  16. for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) { 
  17.             echo """.$data->sheets[0]['cells'][$i][$j]."","; 
  18.            } 
  19.            echo "n";  
  20. //PHP開源代碼 
  21.  
  22. */ 
  23. //以下代碼是將excel表數(shù)據(jù)【3個字段】插入到mysql中,根據(jù)你的excel表字段的多少,改寫以下代碼吧! 
  24.     $sql = "INSERT INTO test VALUES('"
  25.                $data->sheets[0]['cells'][$i][1]."','"
  26.                  $data->sheets[0]['cells'][$i][2]."','"
  27.                  $data->sheets[0]['cells'][$i][3]."')"
  28.     echo $sql.' 
  29. '; 
  30.        $res = mysql_query($sql); 
  31. ?> 

例.導(dǎo)出excel文件

比如我需要一個做php導(dǎo)出 excel的的程序,只需要把相關(guān)的數(shù)據(jù)導(dǎo)出到excel表就可以了,這么簡單的操作就不需要用那些類庫什么的了,直接用header的方式就可以了:header("Content-type:application/vnd.ms-excel");

看看如下代碼如下:

  1. <?php  
  2. header("Content-type:application/vnd.ms-excel");  
  3. header("Content-Disposition:attachment;filename=Export_test.xls");  
  4. $tab="t"$br="n"
  5. $head="編號".$tab."備注".$br
  6. //輸出內(nèi)容如下:   
  7. echo $head.$br
  8. echo  "test321318312".$tab;   
  9. echo  "string1";  
  10. echo  $br
  11. echo  "330181199006061234".$tab;  //直接輸出會被Excel識別為數(shù)字類型 
  12. echo  "number";  
  13. echo  $br
  14. echo  "="330181199006061234"".$tab;  //原樣輸出需要處理 
  15. echo  "string2";  
  16. echo  $br
  17. ?> 

在導(dǎo)出后會發(fā)現(xiàn)一個問題,如果數(shù)據(jù)是數(shù)字會出現(xiàn)一些意想不到的情況,比如,"012345",在excel中會變成"12345";如果輸入身份證號碼這樣的長數(shù)字,在excel中會用科學(xué)計數(shù)法表示出來,并且最后的四位數(shù)字會出現(xiàn)偏差,變位0000等情況,這就需要把單元格設(shè)置為文本格式,方法是

echo "="330181199006061234""如果程序是utf-8編碼的,還需要用iconv函數(shù)去轉(zhuǎn)碼,不然是會亂碼的,亂碼的。

另word格式導(dǎo)入類似,指定header就可以了,代碼如下:

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 襄樊市| 遵化市| 台湾省| 漳州市| 望江县| 霍林郭勒市| 关岭| 高州市| 牡丹江市| 色达县| 资阳市| 米泉市| 山阴县| 乡城县| 马关县| 施秉县| 杭锦旗| 县级市| 寿光市| 沐川县| 黄骅市| 栖霞市| 老河口市| 灵丘县| 同江市| 油尖旺区| 阿坝县| 江城| 苏州市| 徐水县| 黎平县| 鲁山县| 镇赉县| 张家川| 涪陵区| 丹阳市| 嘉兴市| 芷江| 遂平县| 德阳市| 石渠县|