是的,PHP Spreadsheet 可以進行數據驗證。您可以使用 Data Validation 類來設置單元格的數據驗證規則。以下是一個簡單的示例:
<?php
require_once 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\DataValidation;
// 創建一個新的電子表格對象
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// 設置單元格的值
$sheet->setCellValue('A1', '請輸入一個數字');
// 創建數據驗證對象
$dataValidation = $sheet->getDataValidation();
// 設置數據驗證規則
$dataValidation->setType(DataValidation::TYPE_DECIMAL);
$dataValidation->setErrorStyle(DataValidation::STYLE_INFORMATION);
$dataValidation->setAllowBlank(false);
$dataValidation->setShowInputMessage(true);
$dataValidation->setShowErrorMessage(true);
$dataValidation->setShowDropDown(true);
$dataValidation->setErrorTitle('輸入錯誤');
$dataValidation->setError('請輸入一個有效的數字');
$dataValidation->setPromptTitle('請輸入一個數字');
$dataValidation->setPrompt('請輸入一個有效的數字');
// 將數據驗證應用于單元格
$dataValidation->setFormula1('"0";"99999"'); // 設置允許的值為 0 到 99999
$sheet->addValidationData($dataValidation)->setSuppressDropDownArrow(true);
// 保存電子表格
$writer = new Xlsx($spreadsheet);
$writer->save('example.xlsx');
在這個示例中,我們創建了一個新的電子表格,并在 A1 單元格中設置了一個提示文本。然后,我們創建了一個 DataValidation 對象并設置了各種屬性,如類型、錯誤樣式、允許空白等。接下來,我們將這些設置應用于 A1 單元格,并保存了電子表格。
當用戶嘗試在 A1 單元格中輸入數據時,將顯示一個下拉箭頭,用戶可以在其中選擇允許的值。如果輸入的值不在允許的范圍內,將顯示一條錯誤消息。