disconnectWorksheets();$cases[]=Workshop::inspect($file,$id);} $json=json_encode(['version'=>Workshop::VERSION,'generatedBy'=>'PHP + PhpSpreadsheet; every workbook was saved and read again','cases'=>$cases],JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_THROW_ON_ERROR); file_put_contents($dir.'/manifest.json',$json."\n"); $csv=fopen($dir.'/safe-text.csv','wb');fwrite($csv,"\xEF\xBB\xBF");fputcsv($csv,['Источник','Значение'], ';','"','',"\r\n"); foreach(['=2+2','+SUM(1,2)','-1+2','@SUM(A1:A2)','Обычное название']as$v){if(preg_match('/^[=+\-@\t\r\n]/u',$v))$v="'".$v;fputcsv($csv,['Внешний текст',$v],';','"','',"\r\n");}fclose($csv); copy($root.'/src/Workshop.php',$root.'/public/source/Workshop.php.txt');copy(__FILE__,$root.'/public/source/workshop.php.txt'); echo 'Built '.count($cases).' workbooks and inspected manifest'.PHP_EOL;exit(0); } if($action==='inspect'){ $id=$argv[2]??'report';if(!isset(Workshop::CASES[$id])){fwrite(STDERR,"Unknown example\n");exit(2);} echo json_encode(Workshop::inspect($root.'/public/generated/'.$id.'.xlsx',$id),JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_THROW_ON_ERROR).PHP_EOL;exit(0); } echo "PhpSpreadsheet workshop\nphp bin/workshop.php build\nphp bin/workshop.php inspect formulas\n"; exit($action==='help'?0:2);