最近、私は長い間私を悩ませてきた問題に遭遇しました。それは、PHP を使用して Excel テーブルにクエリを実行すると、システム時刻形式が正しく表示されないということです。これは非常に一般的な問題ですが、解決するのが面倒な場合があります。多くの拷問の後、私はついに解決策を見つけました。この記事では、私の経験と解決策を紹介します。
まず、この問題の具体的な症状を見てみましょう。 PHP を使用して Excel テーブルにクエリを実行すると、システム時刻形式エラーが頻繁に発生します。これは通常、Excel テーブルの日付と時刻が時刻形式ではなくテキスト形式で保存されることが原因です。 PHP を使用してこれらの日付と時刻を読み取ると、システムは時刻形式ではなく文字列に解析します。そのため、データ分析や加工を行う際に、日付間の時差が正しく計算できないなどの問題が発生します。
この問題を解決するには多くの方法がありますが、最も簡単で効果的な方法は、PHPExcel ライブラリを使用することです。 PHPExcel は、Excel ファイルの読み取りと書き込みに使用できる無料の PHP ライブラリです。非常に強力な機能を備えており、さまざまな Excel 形式を処理でき、日付と時刻の形式を正しく解析できます。
以下は、PHPExcel ライブラリを使用して Excel テーブルを読み取り、日付と時刻の形式を解析する基本的なサンプル コードです:
require_once 'PHPExcel.php'; $reader = PHPExcel_IOFactory::createReader('Excel2007'); $reader->setReadDataOnly(true); $excel = PHPExcel_IOFactory::load('test.xlsx'); $worksheet = $excel->getActiveSheet(); foreach ($worksheet->getRowIterator() as $row) { foreach ($row->getCellIterator() as $cell) { if ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_NUMERIC && PHPExcel_Shared_Date::isDateTime($cell)) { $value = $cell->getFormattedValue(); $date = date('Y-m-d H:i:s', PHPExcel_Shared_Date::ExcelToPHP($value)); echo $date; } else { echo $cell->getValue(); } echo " "; } echo "\n"; }
このコードは、PHPExcel の PHPExcel_IOFactory、PHPExcel_Shared_Date、および PHPExcel_Cell_DataType クラスを使用します。 Excel テーブルからデータを読み取るためのライブラリ。まず、PHPExcel_IOFactory クラスの createReader() メソッドを使用して Excel リーダーを作成します。次に、リーダーの setReadDataOnly() メソッドを true に設定して、形式を読み取らずに Excel テーブル内のデータのみを読み取ります。次に、load() メソッドを使用して Excel テーブルを読み込みます。最後に、getRowIterator() メソッドと getCellIterator() メソッドを使用して、Excel テーブルの行と列を反復処理します。セルのデータ型が数値であり、日付と時刻の形式である場合は、PHPExcel_Shared_Date クラスの isDateTime() メソッドを使用して検証します。検証に合格した場合は、getFormattedValue() メソッドと ExcelToPHP() メソッドを使用して、日付と時刻の形式を PHP の標準の日付と時刻の形式に解析します。
このコードの重要な点は、PHPExcel_Shared_Date クラスを使用して Excel の日付と時刻の形式を解析することです。 PHPExcel_Shared_Date は、ExcelToPHP() メソッドや PHPToExcel() メソッドなど、日付と時刻の形式を正しく解析するのに役立ついくつかのメソッドを提供する PHPExcel ライブラリの特別なクラスです。 ExcelToPHP() メソッドは Excel の日付と時刻の形式を PHP の標準の日付と時刻の形式に変換し、PHPToExcel() メソッドは PHP の日付と時刻の形式を Excel の日付と時刻の形式に変換します。これらのメソッドは、Excel テーブルで日付と時刻を処理する場合に非常に便利で不可欠です。
要約すると、PHP を使用して Excel テーブルにクエリを実行すると、システム時刻形式エラーが頻繁に発生します。この問題を解決する最も簡単かつ効率的な方法は、PHPExcel ライブラリを使用することです。 PHPExcel ライブラリを使用すると、Excel テーブルの日付と時刻の形式を正しく解析し、PHP の標準の日付と時刻の形式に変換できます。このようにして、日付間の時差を正確に計算し、データの分析と処理を実行できます。この記事が同様の問題の解決に役立つことを願っています。
以上がPHPでExcelのシステム時刻形式をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。