PHP-ExcelReader:https://sourceforge.net/projects/phpexcelreader
無需另存 CSV,直接讀取 .xls (Excel 97-2003) 與 .xlsx (Excel 2007+)。
<?php
require_once 'reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('gbk'); // 輸出編碼,配合資料庫/頁面
// 讀取 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++) {
// 三欄位範例,依實際 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 . '<br />';
$res = mysql_query($sql);
}
?>
setOutputEncoding('gbk'):PHP-ExcelReader 內部轉碼,配合 SET NAMES gbk 避免中文亂碼setOutputEncoding('utf-8') + SET NAMES utf8$data->sheets[0]['cells'][$i][$j]:$i 列 (從 1 開始),$j 欄 (從 1 開始)經過一晚測試,**簡繁體中文皆無亂碼**,xls/xlsx 格式相容良好。
BEGIN/COMMIT/ROLLBACK) 確保資料一致性