本文章來給大家介紹PHP Spreadsheet_Excel_Reader導入excel中文顯示亂碼與不能讀取.xlsx格式的文件的解決辦法,有碰到此類問題的同學可進入參考。
Spreadsheet_Excel_Reader是個常用的導入excel文件的php類。
正常情況下使用該類導入excel代碼如下
<?php
//引入系統公共文件。
require_once ('../global.php');
//引入excel讀取功能類
require_once ('./excel/reader.php');
//實例化
$data = new Spreadsheet_Excel_Reader();
//設置輸出類型(可以是“GBK”或者“UTF-8”),注意插入數據庫時的編碼轉換
$data->setOutputEncoding('CP936');
//讀取excel文件地址
$data->read('20110630_ctms.xls');
//打印輸出sheet數組,單個或多個
print_r($data->sheets);
echo '<br />';
//打印輸出每個sheet的行數,$k從零開始
$k = 0;
echo $data->sheets[$k]['numRows'];
在使用該類時,我遇到過如下問題。
1.不能讀取.xlsx格式的文件。
.xlsx格式的文件不能直接讀取,解決方法是打開該文件,然後另存為.xls文件。
注意:請選擇“Microsoft Excel 5.0/95 工作薄(*.xls)”。這種比較好用。
“Excel 97-2003工作薄(*.xls)”這種也可以,但有時會有問題,比如讀入數據出現丟失的現象。
2.編碼問題。中文顯示亂碼。
$data->setOutputEncoding(‘CP936′);是設置輸出編碼用的,但不能隨意的輸出想要的編碼。可以嘗試改變成gbk或者utf-8後用iconv轉換一下。