答答问 > 投稿 > 正文
【轻松掌握PHP】打造高效数据导入导出脚本全攻略

作者:用户WNTJ 更新时间:2025-06-09 04:12:16 阅读时间: 2分钟

引言

在项目开发中,数据导入导出是常见的需求。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实现高效数据导入导出的方法。在实际项目中,可以根据具体需求选择合适的导入导出方式,以提高项目开发效率。

大家都在看
发布时间:2024-12-10 07:55
受《深圳市轨道交通规划(2012-2040年)》曝光的影响,地铁物业价值持续攀升,成为众多置业者和投资者的首选,记者近日在采访中了解到,部分地铁沿线物业近一年来升值幅度较大,个别物业与一年前相比上涨甚至超过4成。不少开发商打起了“地铁概念房。
发布时间:2024-10-29 18:09
五丝唐 褚朝阳越人传楚俗,截竹竞萦丝。水底深休也,日中还贺之。章施文胜质,列匹美于姬。锦绣侔新段,羔羊寝旧诗。但夸端午节,谁荐屈原祠。把酒时伸奠,汨罗空远而。端午日赐衣。
发布时间:2024-12-14 06:39
目前通车的只有3号线一条,其余的1-2号施工中,另外有10余条规划中,随着城市的发展,地铁线路将越来越多,规划也将随时变化,所以最多有几条是不确定的。。