溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php如何讀取Excel數(shù)據(jù)并導(dǎo)入數(shù)據(jù)庫(kù)

發(fā)布時(shí)間:2023-03-24 15:21:53 來源:億速云 閱讀:121 作者:iii 欄目:編程語言

這篇文章主要介紹了php如何讀取Excel數(shù)據(jù)并導(dǎo)入數(shù)據(jù)庫(kù)的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇php如何讀取Excel數(shù)據(jù)并導(dǎo)入數(shù)據(jù)庫(kù)文章都會(huì)有所收獲,下面我們一起來看看吧。

  1. 安裝 PHPExcel

PHPExcel是一個(gè)用于讀取和處理Excel文件的PHP庫(kù)。您可以從官方網(wǎng)站下載PHPExcel庫(kù),也可以使用Composer安裝。使用Composer的話,只需要在composer.json文件中添加以下代碼即可:

{
    "require": {
        "phpoffice/phpexcel": "1.8.*"
    }
}

在命令行中執(zhí)行composer update命令,Composer將自動(dòng)安裝PHPExcel庫(kù)。

  1. 創(chuàng)建Excel文件

在導(dǎo)入Excel數(shù)據(jù)之前,您需要有一個(gè)Excel文件。您可以通過Microsoft Excel等軟件創(chuàng)建一個(gè)Excel文件。注意,您需要將Excel文件保存為.xls或.xlsx格式。另外,Excel文件的第一行應(yīng)該是表頭,即列名稱。例如:

IDNameAgeEmail
1John25john@gmail.com
2Mary30mary@yahoo.com
3David35david@outlook.com
  1. 讀取Excel文件

使用PHPExcel讀取Excel文件很簡(jiǎn)單。只需要按照以下步驟操作:

require_once 'vendor/autoload.php'; // 引入PHPExcel庫(kù)

$path = 'example.xlsx'; // Excel文件路徑

// 創(chuàng)建PHPExcel對(duì)象
$excel = PHPExcel_IOFactory::load($path);

// 獲取Excel的第一個(gè)工作表
$sheet = $excel->getActiveSheet();

// 獲取工作表中的行數(shù)和列數(shù)
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();

// 遍歷每一行
for ($row = 2; $row <= $highestRow; $row++) {
    // 獲取每一行的數(shù)據(jù)
    $id = $sheet->getCellByColumnAndRow(0, $row)->getValue();
    $name = $sheet->getCellByColumnAndRow(1, $row)->getValue();
    $age = $sheet->getCellByColumnAndRow(2, $row)->getValue();
    $email = $sheet->getCellByColumnAndRow(3, $row)->getValue();

    // 在此處可以將行數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中
}

在以上示例中,我們使用PHPExcel庫(kù)的load()方法創(chuàng)建PHPExcel對(duì)象,并從Excel文件中加載數(shù)據(jù)。然后,我們獲取Excel文件的第一個(gè)工作表,并使用getHighestRow()getHighestColumn()方法獲取行數(shù)和列數(shù)。最后,我們遍歷每一行,使用getCellByColumnAndRow()方法獲取每一行的單元格數(shù)據(jù),并將其插入到數(shù)據(jù)庫(kù)中。

  1. 數(shù)據(jù)庫(kù)插入

將Excel文件中的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中,可以使用SQL INSERT語句。因此,您需要首先連接到數(shù)據(jù)庫(kù),然后將數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中。

// 連接到數(shù)據(jù)庫(kù)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// 插入數(shù)據(jù)到數(shù)據(jù)庫(kù)中
for ($row = 2; $row <= $highestRow; $row++) {
    $id = $sheet->getCellByColumnAndRow(0, $row)->getValue();
    $name = $sheet->getCellByColumnAndRow(1, $row)->getValue();
    $age = $sheet->getCellByColumnAndRow(2, $row)->getValue();
    $email = $sheet->getCellByColumnAndRow(3, $row)->getValue();

    $sql = "INSERT INTO myTable (id, name, age, email)
            VALUES ('$id', '$name', '$age', '$email')";

    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
}

$conn->close(); // 關(guān)閉數(shù)據(jù)庫(kù)連接

在以上示例中,我們使用mysqli連接到MySQL數(shù)據(jù)庫(kù)。在每一行數(shù)據(jù)中,我們使用SQL INSERT語句將數(shù)據(jù)插入到myTable表中。如果插入成功,我們將會(huì)看到“New record created successfully”的消息,否則將會(huì)輸出錯(cuò)誤信息。

關(guān)于“php如何讀取Excel數(shù)據(jù)并導(dǎo)入數(shù)據(jù)庫(kù)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“php如何讀取Excel數(shù)據(jù)并導(dǎo)入數(shù)據(jù)庫(kù)”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI