资讯专栏INFORMATION COLUMN

php批量替换Excel文件内容

Sunxb / 2106人阅读

摘要:接口来实现批量替换不能打开应用程序打开当前目录排除排除循环读取文件生成源文件名已跳过,文件格式不对正在替换文件打开失败,跳过文件不存在获取到值判断后在这里进行替换黑体保存成功关闭工作簿全部

COM接口来实现php批量替换Excl

</>复制代码

  1. $excelPath = "e:excel";
  2. $total = $success = $jump = 0;
  3. $objExcel = new COM("excel.application") or die("不能打开Excel应用程序");
  4. $handle = opendir($excelPath); //打开当前目录
  5. readdir($handle); //排除"."
  6. readdir($handle); //排除 ".."
  7. //循环读取文件
  8. while ($file = readdir($handle)) {
  9. $total++;
  10. //生成源文件名
  11. $fileName = $excelPath . DIRECTORY_SEPARATOR .$file;
  12. $pathinfo = pathinfo($fileName);
  13. if(strtolower($pathinfo["extension"]) != "xls"){
  14. echo "已跳过:".$file.",文件格式不对";
  15. $jump++;
  16. continue;
  17. }
  18. echo "正在替换文件:".$file."
  19. ";
  20. if(file_exists($fileName)){
  21. if(!$objExcel->Application->WorkBooks->Open($fileName)){
  22. echo $file."打开失败,跳过!";
  23. $jump++;
  24. continue;
  25. }
  26. }
  27. else{
  28. echo $fileName."文件不存在
  29. ";
  30. $jump++;
  31. continue;
  32. }
  33. $totalRow = $objExcel->ActiveSheet->UsedRange->Rows->Count;
  34. for($i=1;$i<=$totalRow;$i++){
  35. $keyword = trim($objExcel->Worksheets(1)->Range("A".$i)->Value);//获取到值
  36. if(in_array($keyword,$replaceIn)){//判断后在这里进行替换
  37. $objExcel->Worksheets(1)->Range("B".$i)->Value = $replaceRule[$keyword];
  38. $objExcel->Worksheets(1)->Range("B".$i)->Font->Name = "黑体";
  39. $objExcel->Worksheets(1)->Range("B".$i)->Font->Size = 12;
  40. }
  41. }
  42. if(!$objExcel->ActiveWorkBook->Saved)
  43. {
  44. $objExcel->ActiveWorkBook->save();
  45. echo $file."保存成功!
  46. ";
  47. $success++;
  48. }
  49. //关闭工作簿
  50. $objExcel->Quit();
  51. }
  52. echo "
  53. 全部替换完成!共{$total}个,成功{$success}个,跳过{$jump}个!
  54. ";
  55. //清空对象
  56. $objExcel = null;
  57. exit;

需要注意的是,尽量把这个程序放在命令行下跑,别放在IIS或APACHE下面,因为是调用的系统组件COM,所以可能会出现各种奇葩的错误,这些错误的原因都是因为权限不足引起的,所以直接用管理员身份运行命令行,在命令行下跑就能把权限问题排除在外!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23102.html

相关文章

  • 如何在 Laravel 项目中处理 Excel 文件

    摘要:本文经授权转自社区说明是一款强大的文件处理扩展包能够快速完成文件的的导出解析等功能本项目由团队成员整理发布首发地为社区文章的项目截图运行代码请见请参照此文档运行文章概览安装基础用法更多功能接下来是详细解说安装使用安装该扩展包安装完成后, 本文经授权转自 PHPHub 社区 说明 maatwebsite/excel 是一款强大的 Excel 文件处理扩展包, 能够快速完成 Excel 文...

    chadLi 评论0 收藏0
  • 使用PHPExcel读写excel

    摘要:要求,使用了名字空间编码规范最新的语言新特性对版本的要求加强。已经放出稳定版,官方不再建议使用。保存和导入的行为分别由和负责。注意不要混淆和对象持有数据,和是对其进行序列化和反序列化的辅助类。单元隶属于具体的表单,使用上和表单类互动最多。 转载请注明文章出处:https://tlanyan.me/use-phpexc... PHPOffice出品的PHPExcel是PHP读取和生成Ex...

    wupengyu 评论0 收藏0
  • Python办公系统Word转Excel文件批量编辑

      此篇文章主要是给大家介绍了Python办公系统Word转Excel文件批量编辑实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪。  序言  小伙伴们好,今日有个公务员的小伙伴们授权委托我给他帮帮忙,应该是有一份Word(因为涉及到文档私秘因此原文中具体内容已经做了改动)  一共有近2600条类似格式的表格细栏,每个栏目包括的信息有:  日期  发...

    89542767 评论0 收藏0
  • PHP_文件目录操作

    摘要:文件操作中的文件操作和目录操作获取一个文件的内容或一个网络资源的内容读取文件和网络资源比较快捷的函数,帮助封装了打开关闭等操作。通道的作用,沿着通道就能够操作文件。删除成功删除失败文件不存在 文件操作 PHP中的文件操作和目录操作 file_get_countents file_get_contents($filename); // 获取一个文件的内容或一个网络资源的内容.读取文件和网...

    wums 评论0 收藏0
  • 使用Python批量处理工作簿和工作表

    摘要:使用批量处理工作簿和工作表批量新建并保存工作簿批量打开一个文件夹中的打开工作簿批量重命名一个工作簿的所有工作表批量重命名多个工作簿批量重命名多个工作簿中的同名工作表将一个工作簿的所有工作表批量复制到其他工作簿按条件将一 ...

    maxmin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<