[原创]php批量替换Excel文件内容
手里有一大批Excel文件,不过里面有几行数据是不对的,需要替换,本来想着用VC写个程序来替换,但太麻烦也为了考验一下PHP的强大之处,就改用了PHP编写,首先想到的是用PHPExcel,不过查了查官方的guide,PHPExcel是不支持替换的,只支持读和写,也就是说在
手里有一大批Excel文件,不过里面有几行数据是不对的,需要替换,本来想着用VC写个程序来替换,但太麻烦也为了考验一下PHP的强大之处,就改用了PHP编写,首先想到的是用PHPExcel,不过查了查官方的guide,PHPExcel是不支持替换的,只支持读和写,也就是说在遍历的过程中需要把每个单元格所有的样式全部获取出来然后再往新的excel里面写,这无疑是绕了一个大圈子,而且有合并单元格的会更麻烦。所以就查了查MSDN,决定用COM接口来实现。废话不说,把关键代码贴出来:
$excelPath = "e:\\excel"; $total = $success = $jump = 0; $objExcel = new COM("excel.application") or die("不能打开Excel应用程序"); $handle = opendir($excelPath); //打开当前目录 readdir($handle); //排除"." readdir($handle); //排除 ".." //循环读取文件 while ($file = readdir($handle)) { $total++; //生成源文件名 $fileName = $excelPath . DIRECTORY_SEPARATOR .$file; $pathinfo = pathinfo($fileName); if(strtolower($pathinfo['extension']) != 'xls'){ echo "已跳过:".$file.",文件格式不对"; $jump++; continue; } echo "正在替换文件:".$file."\n"; if(file_exists($fileName)){ if(!$objExcel->Application->WorkBooks->Open($fileName)){ echo $file."打开失败,跳过!"; $jump++; continue; } } else{ echo $fileName."文件不存在\n"; $jump++; continue; } $totalRow = $objExcel->ActiveSheet->UsedRange->Rows->Count; for($i=1;$iWorksheets(1)->Range("A".$i)->Value);//获取到值 if(in_array($keyword,$replaceIn)){//判断后在这里进行替换 $objExcel->Worksheets(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"; $success++; } //关闭工作簿 $objExcel->Quit(); } echo "\n全部替换完成!共{$total}个,成功{$success}个,跳过{$jump}个!\n"; //清空对象 $objExcel = null; exit;
需要注意的是,尽量把这个程序放在命令行下跑,别放在IIS或APACHE下面,因为是调用的系统组件COM,所以可能会出现各种奇葩的错误,这些错误的原因都是因为权限不足引起的,所以直接用管理员身份运行命令行,在命令行下跑就能把权限问题排除在外!
原文地址:[原创]php批量替换Excel文件内容, 感谢原作者分享。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます
