首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 實現 Excel 與 MySQL 資料互導完整方案

     編輯:PHP 相關知識

PHP 實現 Excel 與 MySQL 資料互導完整方案

資料匯入匯出是企業級應用常見需求。本文提供兩種方案:使用 Spreadsheet_Excel_Reader 讀取 .xls 匯入資料庫,以及利用 HTTP Header 直接輸出 Excel 格式實現資料導出,無需額外擴充套件。

方案一:Excel 匯入 MySQL

需下載 Spreadsheet_Excel_Reader 類庫(支援 .xls 格式),核心步驟:

<?php
function import_to_DB($filename) {
    require_once 'reader.php';
    $data = new Spreadsheet_Excel_Reader();
    $data->setOutputEncoding('utf-8');
    $data->read("data/Excel/{$filename}.xls");

    $db = mysql_connect('localhost', '用戶名', '密碼') or die("資料庫連線失敗");
    mysql_query("SET NAMES 'utf8'");
    mysql_select_db('資料庫名');

    for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
        // 取得第 i 行,第 N 欄的值
        $cellValue = $data->sheets[0]['cells'][$i][欄位數];
        // 執行 INSERT 語句
        // $sql = "INSERT INTO 表名 VALUES (...)";
        // mysql_query($sql);
    }
}
?>

關鍵點: $data->sheets[0]['cells'][行][欄] 為核心存取方式,行從 1 開始,欄從 1 開始。

方案二:MySQL 導出 Excel(純 PHP 實現)

利用 Content-Type: application/vnd.ms-excel 標頭,瀏覽器會自動下載為 .xls 檔案:

<?php
header('Content-Type: text/html; charset=utf-8');
header("Content-Type: application/vnd.ms-excel; charset=UTF-8");
header("Content-Disposition: filename=匯出資料.xls");

$conn = mysql_connect("localhost", "root", "密碼") or die("連線失敗");
mysql_select_db("資料庫名", $conn);
mysql_query("SET NAMES 'UTF-8'");

$sql = "SELECT * FROM 表名 WHERE 條件";
$result = mysql_query($sql);

// 輸出表頭(用 \t 分欄,\n 換行)
echo "欄位1\t欄位2\t欄位3\n";

while($row = mysql_fetch_array($result)) {
    echo $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
}
?>

進階建議

  • 新專案建議使用 PhpSpreadsheet 取代已停止維護的 PHPExcel,支援 .xlsx、.ods 等現代格式。
  • 大量資料匯出時,啟用 ob_start() 緩衝輸出,避免記憶體溢位。
  • 匯入時務必驗證資料型別、長度、唯一性,防止髒資料入庫。
  • mysql_* 函數已棄用,實際專案請改用 PDO 或 mysqli。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved