是的,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 单元格中输入数据时,将显示一个下拉箭头,用户可以在其中选择允许的值。如果输入的值不在允许的范围内,将显示一条错误消息。