>백엔드 개발 >PHP 문제 >PHP에서 Excel 데이터를 읽고 데이터베이스로 가져오는 방법

PHP에서 Excel 데이터를 읽고 데이터베이스로 가져오는 방법

PHPz
PHPz원래의
2023-03-24 10:58:272541검색

PHP는 웹 애플리케이션 및 웹사이트 개발에 사용되는 인기 있는 프로그래밍 언어입니다. 웹 애플리케이션에서는 Excel(.xls 또는 .xlsx) 파일의 데이터를 데이터베이스로 가져와야 하는 경우가 많습니다. 이 기사에서는 PHP를 사용하여 Excel 데이터를 읽고 데이터베이스로 가져오는 방법을 소개합니다.

  1. PHPExcel 설치

PHPExcel은 Excel 파일을 읽고 처리하기 위한 PHP 라이브러리입니다. PHPExcel 라이브러리는 공식 웹사이트(https://phpexcel.codeplex.com/)에서 다운로드하거나 Composer를 사용하여 설치할 수 있습니다. Composer를 사용하는 경우 작곡가.json 파일에 다음 코드만 추가하면 됩니다.

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

명령줄에서 composer update 명령을 실행하면 Composer가 자동으로 PHPExcel 라이브러리를 설치합니다. composer update命令,Composer将自动安装PHPExcel库。

  1. 创建Excel文件

在导入Excel数据之前,您需要有一个Excel文件。您可以通过Microsoft Excel等软件创建一个Excel文件。注意,您需要将Excel文件保存为.xls或.xlsx格式。另外,Excel文件的第一行应该是表头,即列名称。例如:

ID Name Age Email
1 John 25 john@gmail.com
2 Mary 30 mary@yahoo.com
3 David 35 david@outlook.com
  1. 读取Excel文件

使用PHPExcel读取Excel文件很简单。只需要按照以下步骤操作:

require_once 'vendor/autoload.php'; // 引入PHPExcel库

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

// 创建PHPExcel对象
$excel = PHPExcel_IOFactory::load($path);

// 获取Excel的第一个工作表
$sheet = $excel->getActiveSheet();

// 获取工作表中的行数和列数
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();

// 遍历每一行
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();

    // 在此处可以将行数据插入到数据库中
}

在以上示例中,我们使用PHPExcel库的load()方法创建PHPExcel对象,并从Excel文件中加载数据。然后,我们获取Excel文件的第一个工作表,并使用getHighestRow()getHighestColumn()方法获取行数和列数。最后,我们遍历每一行,使用getCellByColumnAndRow()

      Excel 파일 만들기
    1. Excel 데이터를 가져오기 전에 Excel 파일이 있어야 합니다. Microsoft Excel과 같은 소프트웨어를 통해 Excel 파일을 만들 수 있습니다. Excel 파일을 .xls 또는 .xlsx 형식으로 저장해야 합니다. 또한, 엑셀 파일의 첫 번째 줄은 헤더, 즉 컬럼 이름이어야 합니다. 예:
    ID 이름 나이 이메일
    1 John 25 john@gmail.com
    2 메리 30 mary@yahoo.com
    3 데이비드 35 david@outlook.com

      Excel 파일 읽기

      PHPExcel을 사용하면 Excel 파일을 쉽게 읽을 수 있습니다. 다음 단계를 따르세요.

      // 连接到数据库
      $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);
      }
      
      // 插入数据到数据库中
      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(); // 关闭数据库连接
      위 예에서는 PHPExcel 라이브러리의 load() 메서드를 사용하여 PHPExcel 개체를 만들고 Excel 파일에서 데이터를 로드합니다. 그런 다음 Excel 파일의 첫 번째 워크시트를 가져오고 getHighestRow()getHighestColumn() 메서드를 사용하여 행과 열 수를 가져옵니다. 마지막으로 각 행을 반복하고 getCellByColumnAndRow() 메서드를 사용하여 각 행의 셀 데이터를 얻은 다음 이를 데이터베이스에 삽입합니다.

      🎜🎜Database Insert🎜🎜🎜🎜 Excel 파일의 데이터를 데이터베이스에 삽입하려면 SQL INSERT 문을 사용할 수 있습니다. 따라서 먼저 데이터베이스에 연결한 다음 데이터베이스에 데이터를 삽입해야 합니다. 🎜rrreee🎜위의 예에서는 mysqli를 사용하여 MySQL 데이터베이스에 연결하고 있습니다. 데이터의 각 행에서 SQL INSERT 문을 사용하여 myTable 테이블에 데이터를 삽입합니다. 삽입이 성공하면 "새 레코드가 성공적으로 생성되었습니다"라는 메시지가 표시되고, 그렇지 않으면 오류 메시지가 출력됩니다. 🎜🎜🎜요약🎜🎜🎜PHP를 사용하여 Excel에서 데이터를 쉽게 가져올 수 있습니다. Excel 파일을 읽고 데이터를 데이터베이스에 삽입하려면 PHPExcel 라이브러리를 사용하면 됩니다. 위의 예에서는 PHPExcel 라이브러리와 SQL INSERT 문을 사용하여 MySQL 데이터베이스로 데이터를 가져오는 방법을 보여주었습니다. 🎜

위 내용은 PHP에서 Excel 데이터를 읽고 데이터베이스로 가져오는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.