温馨提示×

php xlswriter怎样进行数据筛选

PHP
小樊
83
2024-11-23 13:23:23
栏目: 编程语言

在PHP中使用PHPExcel库(现在已经被PhpSpreadsheet取代)进行Excel文件操作时,你可以使用以下方法进行数据筛选:

  1. 首先,确保已经安装了PhpSpreadsheet库。如果没有安装,可以使用Composer进行安装:
composer require phpoffice/phpspreadsheet
  1. 然后,创建一个新的Excel文件并写入数据:
<?php
require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

$data = [
    ['Name', 'Age', 'City'],
    ['Alice', 30, 'New York'],
    ['Bob', 25, 'San Francisco'],
    ['Charlie', 22, 'Los Angeles'],
];

foreach ($data as $row) {
    $sheet->fromArray($row, null, 'A' . ($sheet->getHighestRow() + 1));
}

$writer = new Xlsx($spreadsheet);
$writer->save('example.xlsx');
  1. 接下来,为了筛选数据,我们需要获取所有行的数据,然后根据条件进行筛选:
function filterData($sheet, $column, $value)
{
    $filteredData = [];

    for ($row = 1; $row <= $sheet->getHighestRow(); $row++) {
        $cellValue = $sheet->getCell($column . $row)->getValue();

        if ($cellValue === $value) {
            $filteredData[] = $sheet->rangeToArray('A' . $row . ':' . $column . $row, null, true, true, false);
        }
    }

    return $filteredData;
}
  1. 最后,使用筛选函数筛选数据并保存到新的Excel文件中:
$column = 'B'; // 要筛选的列,例如:'B' 代表年龄列
$value = 25; // 要筛选的值,例如:25

$filteredData = filterData($sheet, $column, $value);

$filteredSpreadsheet = new Spreadsheet();
$filteredSheet = $filteredSpreadsheet->getActiveSheet();

$rowNumber = 1;
foreach ($filteredData as $data) {
    foreach ($data as $cell) {
        $filteredSheet->setCellValue('A' . $rowNumber, $cell);
        $rowNumber++;
    }
}

$filteredWriter = new Xlsx($filteredSpreadsheet);
$filteredWriter->save('filtered_example.xlsx');

这个示例将筛选出年龄为25的行,并将结果保存到名为"filtered_example.xlsx"的新Excel文件中。你可以根据需要修改$column$value变量来筛选不同的列和值。

0