【輕鬆掌握PHP】打造高效數據導入導出腳本全攻略

提問者:用戶WNTJ 發布時間: 2025-05-19 12:23:20 閱讀時間: 3分鐘

最佳答案

引言

在項目開辟中,數據導入導出是罕見的須要。PHP作為伺服器端劇本言語,在處理數據導入導出方面存在富強的功能。本文將具體介紹怎樣利用PHP實現高效的數據導入導出劇本,包含CSV文件、Excel文件以及材料庫數據的導入導出。

一、CSV文件導入導出

1.1 CSV文件導入

1.1.1 籌備任務

起首,須要創建一個HTML表單,用於上傳CSV文件。

<form action="do.php?action=import" method="post" enctype="multipart/form-data">
    <p>請抉摘要導入的CSV文件:<br/>
    <input type="file" name="file" />
    <input type="submit" value="導入CSV" />
    </p>
</form>

1.1.2 PHP劇本

do.php文件中,根據上傳的CSV文件停止處理。

<?php
include_once "connect.php"; // 連接材料庫

$action = $_GET['action'];

if ($action == 'import') {
    $file = $_FILES['file']['tmp_name'];
    $handle = fopen($file, "r");
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $sql = "INSERT INTO student (name, sex, age) VALUES ('$data[0]', '$data[1]', '$data[2]')";
        mysqli_query($conn, $sql);
    }
    fclose($handle);
    echo "導入成功!";
}
?>

1.2 CSV文件導出

1.2.1 籌備任務

創建一個HTML按鈕,用於觸發導出操縱。

<form action="do.php?action=export" method="get">
    <input type="submit" value="導出CSV" />
</form>

1.2.2 PHP劇本

do.php文件中,根據懇求導出CSV文件。

<?php
include_once "connect.php"; // 連接材料庫

$action = $_GET['action'];

if ($action == 'export') {
    $sql = "SELECT * FROM student";
    $result = mysqli_query($conn, $sql);
    $output = "";
    while ($row = mysqli_fetch_assoc($result)) {
        $output .= implode(",", $row) . "\n";
    }
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="export.csv"');
    echo $output;
}
?>

二、Excel文件導入導出

2.1 利用PHPExcel庫

起首,須要下載PHPExcel庫,並將其包含到項目中。

require_once 'PHPExcel.php';

2.1.1 Excel文件導入

$objPHPExcel = PHPExcel_IOFactory::load($file);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true);

2.1.2 Excel文件導出

$objPHPExcel = new PHPExcel();
$sheet = $objPHPExcel->getActiveSheet();
foreach ($data as $row) {
    $sheet->fromArray($row, null, 'A1');
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('export.xlsx');

三、材料庫數據導入導出

3.1 材料庫數據導出

$sql = "SELECT * FROM student";
$result = mysqli_query($conn, $sql);
$output = "";
while ($row = mysqli_fetch_assoc($result)) {
    $output .= implode(",", $row) . "\n";
}
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="export.csv"');
echo $output;

3.2 材料庫數據導入

foreach ($data as $row) {
    $sql = "INSERT INTO student (name, sex, age) VALUES ('$row[name]', '$row[sex]', '$row[age]')";
    mysqli_query($conn, $sql);
}

總結

經由過程本文的介紹,信賴妳曾經控制了利用PHP實現高效數據導入導出的方法。在現實項目中,可能根據具體須要抉擇合適的導入導出方法,以進步項目開辟效力。

相關推薦