Help us understand the problem. What is going on with this article?

PHPでExcelファイルを読み込んで配列にするまでのサムシング

More than 5 years have passed since last update.

ターゲットのxlsxさん

スクリーンショット 2013-11-22 6.00.17.png

必要なもの

・ ターゲットのxlsx
・ PHPExcelライブラリ ( http://phpexcel.codeplex.com/releases/view/107442

readPHPExcel
// ファイル名の指定
$readFile = "example.xlsx";

// 連想配列でデータ受け取り
$data = readXlsx($readFile);

// 出力確認
print '<pre>';
var_dump($data);
print '</pre>';

// ファイル名渡したら配列返すラッパー関数
function readXlsx($readFile)
{
    // ライブラリファイルの読み込み (パス指定し直す)
    require_once dirname(__FILE__) . '/PHPExcel/IOFactory.php';

    // ファイルの存在チェック
    if (!file_exists($readFile)) {
        exit($readFile. "が見つかりません。" . EOL);
    }

    // xlsxをPHPExcelに食わせる
    $objPExcel = PHPExcel_IOFactory::load($readFile);

    // 配列形式で返す
    return $objPExcel->getActiveSheet()->toArray(null,true,true,true);
}


 // toArrayの説明
/**
 * Create array from worksheet
 *
 * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist
 * @param boolean $calculateFormulas Should formulas be calculated?
 * @param boolean $formatData  Should formatting be applied to cell values?
 * @param boolean $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero
 *                               True - Return rows and columns indexed by their actual row and column IDs
 * @return array
 */

以下結果

スクリーンショット 2013-11-22 5.58.28.png

感想

日本語対応もしているみたいだし、
クライアントにテンプレートを渡してデータ入れてもらったら、
所定のディレクトリに配置するやり方でシステム更新ができるようになりそう。

ライセンスがLGPLなとこだけ注意が必要かもしれません。

14.01.10 追記

以前の記事をカスタマイズして自分なりに使いやすい形にしてみました。
ExcelをPHPで読み込んで1行目を連想配列のキーにするクラス書いたよ。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away