情報化の急速な発展により、Excel の表は私たちの日常業務に欠かせないツールになりました。開発者にとって、PHP 言語を使用して Excel テーブルを読み取ることも、頻繁に必要なタスクの 1 つです。しかし、Excelの表を読み込む際に文字化けが発生し、プログラムの実行やデータの処理に支障をきたす場合があります。この記事では、PHPで読み込んだExcelの表が文字化けする原因と解決策について説明します。
1. Excel のコード化けとは何ですか?
Excel ファイルはバイナリで保存されていますが、ファイル ヘッダーには XML バージョン情報も含まれており、どのエンコード方式が使用されているかがわかります。 Excelが文字化けする原因は、PHPがExcelファイルを読み込む際にファイル内のエンコード形式を正しく認識できず、文字化けが発生してしまうためです。
2. Excel の文字化けの原因
1. 一貫性のないエンコード方法
異なるエンコード方法のテキストを Excel テーブルにコピーするとき、Excel の現在のエンコード形式が異なる場合、テキストをコピーすると文字化けが発生します。
2. データの保存形式が間違っています
Excel には、テキスト、数値、日付など、さまざまなデータ保存形式があります。 Excelのデータ保存形式が間違っていると文字化けが発生します。
3. ファイル自体に問題がある
Excel ファイル自体に問題があり、文字化けが発生する場合もあります。たとえば、圧縮された Excel ファイルの場合、適切な解凍ツールを使用してファイルを解凍しないと、ファイルが破損する可能性があります。
3. Excel の文字化けコードの解決策
1. Excel のエンコード方法を変更する
Excel では、ファイルのエンコード方法を手動で設定して、ファイルのエンコード方法を確実に行うことができます。 PHP エンコーディングと一致しています。 アプローチの一貫性。具体的な手順は次のとおりです:
a. Excel ファイルを開き、[ファイル] タブをクリックして、[オプション] を選択します。
b. ポップアップ ウィンドウで [詳細] オプションを選択します。
c. [地域オプション] 列を見つけて、テキスト形式を元のデフォルト形式から PHP と互換性のある形式 (UTF-8 など) に変更します。
2. コード内のエンコード方法を変更する
PHP が Excel 内のテキスト コンテンツを正しく識別できるように、Excel ファイルを読み取るときにファイルのエンコード方法を設定できます。具体的なコードは次のとおりです。
$reader = PHPExcel_IOFactory::createReader('Excel2007' );
$reader->setReadDataOnly(true);
$reader->setEncoding(' UTF-8 ');
$PHPExcel = $reader->load($filename);
3. Excel でのデータ保存形式の確認
データ保存形式を設定できますExcel の形式で、PHP で情報を正しく読み取れるようにします。たとえば、日付を含む Excel テーブルを読み取る場合、次のコードを使用できます:
$objPHPExcel->getActiveSheet() ->getStyle('A1') ->getNumberFormat() -> ;setFormatCode (PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
4. ファイルが破損していないか確認します
Excel ファイルの整合性をチェックすることで、Excel の文字化けの問題を解決できます。パッケージ化ツールを使用して Excel ファイルを zip ファイルにパッケージ化してから、解凍ツールを使用してファイルを解凍し、ファイルが正しく解凍されたかどうかを確認することを選択できます。
概要:
Excel の文字化け問題は、PHP が Excel を読み取るときによく起こる問題の 1 つです。主な解決策は、Excel のエンコード方法を変更する、コード内のエンコード方法を変更する、およびExcelデータの保存形式を確認し、ファイルが破損していないか確認してください。状況に応じて操作方法も異なりますが、この問題を解決することでExcelの読み込み効率が向上し、開発プロセスの利便性が高まります。
以上がPHP で読み込んだ Excel テーブルで文字化けが発生する原因と解決策について説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。