使用 PHPSpreadsheet 为 VLOOKUP 创建 Dataset/Array
Create Dataset/Array for VLOOKUP Using PHPSpreadsheet
我有一个 export.php
文件,其目标是使用 VLOOKUP 函数设置数据验证。然而,似乎我在食谱中找不到任何似乎支持这一点的东西。我以为我找到了一些东西,但它似乎没有用,或者至少,它没有像我想要的那样工作。
这是我的简化代码:
require_once 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$i = 3;
foreach ($_POST['foo'] as $key => $el)
{
$sheet->setCellValue('D'. $i, '=VLOOKUP(C'. $i .',array,2,0)');
$i++;
}
# Column A = labels
# Column B = value
# create range
$spreadsheet->addNamedRange(new \PhpOffice\PhpSpreadsheet\NamedRange('array', $spreadsheet->getActiveSheet(), 'A'));
$spreadsheet->addNamedRange(new \PhpOffice\PhpSpreadsheet\NamedRange('array', $spreadsheet->getActiveSheet(), 'B'));
# redirect browser output -> php://output (download)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="hello.xlsx"');
header('Cache-Control: max-age=0');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
但是,这不起作用 - 单元格范围出现致命错误,因为您无法 select 将一列添加到范围中。
如何使用 PHPSpreadsheet 为 VLOOKUP 创建数据集?
谢谢
答案是不使用数据集本身,而是使用单元格范围:
$lastValueCell = 84; # this is dynamically got, but no value in showing how
$output[$partNum][3] = '=VLOOKUP(C'. $x .',Formulas!A:B$'. $lastValueCell .',2,0)';
# then append to spreadsheet using ->setCellValue()
VLOOKUP
现在可以导出
我有一个 export.php
文件,其目标是使用 VLOOKUP 函数设置数据验证。然而,似乎我在食谱中找不到任何似乎支持这一点的东西。我以为我找到了一些东西,但它似乎没有用,或者至少,它没有像我想要的那样工作。
这是我的简化代码:
require_once 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$i = 3;
foreach ($_POST['foo'] as $key => $el)
{
$sheet->setCellValue('D'. $i, '=VLOOKUP(C'. $i .',array,2,0)');
$i++;
}
# Column A = labels
# Column B = value
# create range
$spreadsheet->addNamedRange(new \PhpOffice\PhpSpreadsheet\NamedRange('array', $spreadsheet->getActiveSheet(), 'A'));
$spreadsheet->addNamedRange(new \PhpOffice\PhpSpreadsheet\NamedRange('array', $spreadsheet->getActiveSheet(), 'B'));
# redirect browser output -> php://output (download)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="hello.xlsx"');
header('Cache-Control: max-age=0');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
但是,这不起作用 - 单元格范围出现致命错误,因为您无法 select 将一列添加到范围中。
如何使用 PHPSpreadsheet 为 VLOOKUP 创建数据集?
谢谢
答案是不使用数据集本身,而是使用单元格范围:
$lastValueCell = 84; # this is dynamically got, but no value in showing how
$output[$partNum][3] = '=VLOOKUP(C'. $x .',Formulas!A:B$'. $lastValueCell .',2,0)';
# then append to spreadsheet using ->setCellValue()
VLOOKUP
现在可以导出