web-dev-qa-db-ja.com

PHPExcelで使用してExcelからデータを読み取る方法

Excelシート(.xlsx)からデータをインポートしようとしています。インポートデータ用に PHPExcel を見つけましたが、ドキュメントとソースコードをダウンロードした後、どのファイルが重要か混乱しています。また、そのサイトでドキュメントを見つけようとしましたが、方法が見つかりませんでした。

私のタスクについて:選択したシートからExcelシートデータを読み取り、データベーステーブルにデータを挿入します。

使い方を教えていただければ本当にありがたいです。

ありがとう。

5
Manan

PHPExcelライブラリを使用してExcelファイルを読み取り、データをデータベースに挿入できます。

サンプルコードは以下のとおりです。

//  Include PHPExcel_IOFactory
include 'PHPExcel/IOFactory.php';

$inputFileName = 'sample.xls';

//  Read your Excel workbook
try {
    $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($inputFileName);
} catch(Exception $e) {
    die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}

//  Get worksheet dimensions
$sheet = $objPHPExcel->getSheet(0); 
$highestRow = $sheet->getHighestRow(); 
$highestColumn = $sheet->getHighestColumn();

//  Loop through each row of the worksheet in turn
for ($row = 1; $row <= $highestRow; $row++){ 
    //  Read a row of data into an array
    $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
                                    NULL,
                                    TRUE,
                                    FALSE);
    //  Insert row data array into database here using your own structure
12
Brainy Prb

ドキュメントをざっと見てから、IOFactoryを使用してファイル形式を自動的に決定します。

include 'path/to/PHPExcel/IOFactory.php';

// Let IOFactory determine the spreadsheet format
$document = PHPExcel_IOFactory::load('path/to/spreadsheet.xls');

// Get the active sheet as an array
$activeSheetData = $document->getActiveSheet()->toArray(null, true, true, true);

var_dump($activeSheetData);
8
Tserkov

これを試して、開発プロセスをすぐに開始できるようにしてください。

include '.... /PHPexcel/Classes/PHPExcel.php';
    $dataFfile = "C:/tmp/test_data.xls";
    $objPHPExcel = PHPExcel_IOFactory::load($dataFfile);
    $sheet = $objPHPExcel->getActiveSheet();
    $data = $sheet->rangeToArray('A2:AB5523');
    echo "Rows available: " . count($data) . "\n";
    foreach ($data as $row) {
        print_r($row);
    }

インクルードパスをPHPExcel.phpへのパスに置き換えます
$dataFileをExcelファイルに置き換えます
インポートするセルの範囲も調整します

0
Antoan Milkov