程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP導入導出Excel文件的方法

PHP導入導出Excel文件的方法

編輯:關於PHP編程

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


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

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

例.導入Excel文件

 代碼如下 復制代碼

<?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"); 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved