1

PHPExcelを使用してExcelファイルを読み取り、その内容をOracleデータベースに格納するPHPパーサーがあります。

問題は、パーサーがすべての行を読み取り、行のヘッダーとそれらの行に含まれるデータを区別しないことです。情報がデータベースから読み取られるとき、それはフラットなファイルリストで読み取られ、ナビゲートするのは簡単ではありません。

現在、データをEXTJSグリッドに読み込んでいます。Excelを読み取り、DBに保存してから、引き出して新しいEXTJS GroupingGridで表示できるようにしたいと思います。ここで、グループはExcelファイルの各ワークシートの「ヘッダー」になります。

PHPExcelを使用したことがあるか、PHPExcelを使用してExcelファイルを読み取り、各ワークシートにヘッダー(1,1)を出力する方法を知っている人がいます。これにより、データベースに保存して引き出し、JSONで表示できるようになります。 groupingGridを使用すると、各ヘッダーにプラス記号を付けることができるので、プラス記号をクリックして、グリッド内のそのヘッダーの下にあるすべてのコンテンツを表示できますか?

4

2 に答える 2

0
//  Include the PHPExcel library
require_once './Classes/PHPExcel.php';
//  Load the Excel File
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load("myExcelFile.xls");
//  Loop through every worksheet
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
   //  Read the value at Cell A1 in the current worksheet
   $cellValue = $worksheet->getCell('A1')->getValue();
   //  Do whatever you want with $cellValue
   //  Store it in a database
   //  Whatever...
}

もちろん、myExcelFile.xlsが存在しない場合、読み取り権限がない場合、または実際にはExcelファイルではない場合に備えて、そこでも少しエラー処理が必要になる場合がありますが、それをラップするだけです。ブロックを試して/キャッチし、必要に応じて処理します。

すべての行と列ではなく、各ワークシートの最初の行のみをロードする場合は、読み取りフィルターを設定することもできます。

//  Include the PHPExcel library
require_once './Classes/PHPExcel.php';

/**  Define a Read Filter class implementing PHPExcel_Reader_IReadFilter  */
class firstRowFilter implements PHPExcel_Reader_IReadFilter
{
    public function readCell($column, $row, $worksheetName = '') {
        //  Only read the heading row
        return ($row == 1);
}

//  Create an instance of our Read Filter
$firstRowFilter = new firstRowFilter();

//  Instantiate the correct Reader
$objReader = PHPExcel_IOFactory::createReader('Excel5');
//  Tell the Reader only to load cells that match our Read Filter
$objReader->setReadFilter($firstRowFilter)
//  Load the Excel File
$objPHPExcel = $objReader->load("myExcelFile.xls");
//  Loop through every worksheet
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
   //  Read the value at Cell A1 in the current worksheet
   $cellValue = $worksheet->getCell('A1')->getValue();
   //  Do whatever you want with $cellValue
   //  Store it in a database
   //  Whatever...
}
于 2011-04-07T07:44:44.753 に答える
0

こんにちは、この php-excell-reader http://code.google.com/p/php-excel-reader/を使用できます。私はそれを使用しており、完璧に動作します。すべての行のすべてのセルを操作できます。

  1. 細胞を数える
  2. 行を数える
  3. そのカウントにループを作成し、データを操作します (最初の行または最初のセルをスキップする場合は、+1 を追加できます。
于 2011-04-07T01:26:13.830 に答える