当前位置: 首页 > 后端技术 > PHP

php批量替换Excel文件内容

时间:2023-03-29 15:30:59 PHP

COM接口实现php批量替换Excl$excelPath="e:\\excel";$total=$success=$jump=0;$objExcel=newCOM("excel.application")ordie("Excel应用程序无法打开程序");$handle=opendir($excelPath);//打开当前目录readdir($handle);//排除”。”readdir($句柄);//排除“..”//循环读取文件while($file=readdir($handle)){$total++;//生成源文件名$fileName=$excelPath.DIRECTORY_SEPARATOR.$文件;$路径信息=路径信息($文件名);if(strtolower($pathinfo['extension'])!='xls'){echo"跳过:".$file.",文件格式错误";$跳跃++;继续;}echo"替换文件:".$file."\n";if(file_exists($fileName)){if(!$objExcel->Application->WorkBooks->Open($fileName)){echo$file."打开失败,跳过!";$跳跃++;继续;}}else{echo$fileName."文件不存在\n";$跳跃++;继续;}$totalRow=$objExcel->ActiveSheet->UsedRange->Rows->Count;对于($i=1;$i<=$totalRow;$i++){$keyword=trim($objExcel->Worksheets(1)->Range("A".$i)->Value);//获取值if(in_array($keyword,$replaceIn)){//判断后这里替换$objExcel->工作表(1)->Range("B".$i)->Value=$replaceRule[$keyword];$objExcel->Worksheets(1)->Range("B".$i)->Font->Name="黑体";$objExcel->Worksheets(1)->Range("B".$i)->Font->Size=12;}}if(!$objExcel->ActiveWorkBook->Saved){$objExcel->ActiveWorkBook->save();echo$file."保存成功!\n";$成功++;}//关闭工作簿$objExcel->Quit();}echo"\n全部替换完成!共{$total},{$success},跳过{$jump}!\n";//清空对象$objExcel=null;出口;注意,这个程序尽量放在命令行下运行,不要放在IIS或APACHE下,因为调用的是系统组件COM,所以可能会出现各种奇怪的错误。出现这些错误的原因是权限不够导致的,所以直接以管理员身份运行命令行,在命令行下运行可以排除权限问题!