open($path, ZipArchive::CREATE | ZipArchive::OVERWRITE); $zip->addFromString('xl/worksheets/sheet1.xml', <<<'XML' 店铺 商品编码 天猫-测试店 SKU-1 XML); $zip->close(); $rows = iterator_to_array((new XlsxSheetReader())->rows($path, ['店铺', '商品编码'])); $this->assertSame([['店铺' => '天猫-测试店', '商品编码' => 'SKU-1']], $rows); @unlink($path); } public function test_it_can_select_a_named_worksheet(): void { $path = tempnam(sys_get_temp_dir(), 'xlsx-named-sheet') . '.xlsx'; $zip = new ZipArchive(); $zip->open($path, ZipArchive::CREATE | ZipArchive::OVERWRITE); $zip->addFromString('xl/workbook.xml', <<<'XML' XML); $zip->addFromString('xl/_rels/workbook.xml.rels', <<<'XML' XML); $zip->addFromString('xl/worksheets/sheet1.xml', <<<'XML' 汇总 不是明细 XML); $zip->addFromString('xl/worksheets/sheet2.xml', <<<'XML' 店铺 商品编码 天猫-HX旗舰店101 SKU-NAMED XML); $zip->close(); $rows = iterator_to_array((new XlsxSheetReader())->rows( $path, ['店铺', '商品编码'], [], '发货明细表', )); $this->assertSame( [['店铺' => '天猫-HX旗舰店101', '商品编码' => 'SKU-NAMED']], $rows, ); @unlink($path); } }