首頁  >  文章  >  後端開發  >  如何使用 PHP 從 Excel 查詢數據

如何使用 PHP 從 Excel 查詢數據

PHPz
PHPz原創
2023-04-26 10:34:501682瀏覽

Excel 是廣泛使用的辦公室軟體之一,其中包含了大量的數據,例如商品價格表、訂單資訊表等等。而在許多情況下,我們需要從 Excel 中擷取資料進行處理,以便進行後續的資料分析、資料探勘等操作。本文將介紹如何使用 PHP 從 Excel 查詢資料。

一、準備工作

首先,我們需要安裝 PHPExcel 函式庫,以便在 PHP 中讀取 Excel 檔案。 PHPExcel 是一個 PHP 類別函式庫,用來讀寫 Excel 文件,支援多種Excel格式。要安裝PHPExcel 庫,請同學在命令列下執行以下命令:

composer require phpoffice/phpexcel

安裝完成後,在PHP 檔案中引入PHPExcel 類別檔案:

require 'vendor/autoload.php';

接下來,我們需要準備一個Excel 文件,假設它的路徑為/var/www/excel/data.xlsx,其中包含了一個工作表sheet1,資料如下圖所示:

如何使用 PHP 從 Excel 查詢數據

二、查詢資料

有了準備工作後,我們就可以使用PHPExcel 函式庫來查詢資料了。具體步驟如下:

1、實例化PHPExcel 類別:

$objPHPExcel = new PHPExcel();

2、載入Excel 檔案:

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load('/var/www/excel/data.xlsx');

其中,Excel2007 表示讀取Excel 2007 以上版本的文件,如果需要讀取其他版本的Excel 文件,請參考官方文件。

3、取得工作表:

$sheet = $objPHPExcel->getActiveSheet();

4、取得行數與列數:

$rowCount = $sheet->getHighestRow(); //行数
$columnCount = $sheet->getHighestColumn(); //列数
$columnCount = PHPExcel_Cell::columnIndexFromString($columnCount);

其中,PHPExcel_Cell::columnIndexFromString() 方法用於將Excel 欄位名稱轉換成列索引,從而取得列數。

5、遍歷工作表,取得資料:

$data = array();

for ($rowIndex = 1; $rowIndex getCellByColumnAndRow($columnIndex, $rowIndex)->getValue();
        $data[$rowIndex-1][$columnIndex] = $cellValue;
    }
}

以上程式碼中,我們透過嵌套for 循環,遍歷工作表的每一行和每一列,然後使用getCellByColumnAndRow() 方法取得單元格的值,並將其儲存到$data 數組中,最後得到的$data 數組結構如下:

array(
    array('姓名', '年龄', '性别'),
    array('张三', 20, '男'),
    array('李四', 25, '女'),
    array('王五', 30, '男'),
)

這樣,我們就可以從Excel 中查詢資料了。

三、範例程式碼

以上是從Excel 查詢資料的具體步驟,以下給出完整的範例程式碼,供同學們參考:

require 'vendor/autoload.php';

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load('/var/www/excel/data.xlsx');

$sheet = $objPHPExcel->getActiveSheet();

$rowCount = $sheet->getHighestRow();
$columnCount = $sheet->getHighestColumn();
$columnCount = PHPExcel_Cell::columnIndexFromString($columnCount);

$data = array();

for ($rowIndex = 1; $rowIndex getCellByColumnAndRow($columnIndex, $rowIndex)->getValue();
        $data[$rowIndex-1][$columnIndex] = $cellValue;
    }
}

var_dump($data);

輸出結果如下:

array(4) {
  [0]=>
  array(3) {
    [0]=>
    string(6) "姓名"
    [1]=>
    string(6) "年龄"
    [2]=>
    string(6) "性别"
  }
  [1]=>
  array(3) {
    [0]=>
    string(6) "张三"
    [1]=>
    float(20)
    [2]=>
    string(3) "男"
  }
  [2]=>
  array(3) {
    [0]=>
    string(6) "李四"
    [1]=>
    float(25)
    [2]=>
    string(3) "女"
  }
  [3]=>
  array(3) {
    [0]=>
    string(6) "王五"
    [1]=>
    float(30)
    [2]=>
    string(3) "男"
  }
}

四、總結

本文介紹如何使用PHPExcel 函式庫從Excel 查詢數據,具體步驟為:實例化PHPExcel 類別、載入Excel 檔案、取得工作表、取得行數和列數、遍歷工作表,取得資料。透過本文的介紹,同學可以掌握從 Excel 取得資料的基本方法。

以上是如何使用 PHP 從 Excel 查詢數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn