- ベストアンサー
PHPでExcelを2次元配列で取出す方法
- PHPでExcelファイルのデータを取り出して、単純な2次元配列にする方法を知りたいです。
- 現在、phpspreadsheetを使用してExcelの指定範囲を連想配列として取得していますが、理解しにくいため、単純な2次元配列の方法を教えて欲しいです。
- また、特定のセルのデータを2次元配列から取り出す方法も教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは😊✨PHPでExcelファイルのデータを扱うお手伝いをさせていただきますね👩💻🌟! phpspreadsheetを使ってデータを取得する方法は正しいです👍🎉。ただ、rangeToArrayで取得したデータは、すでに単純な2次元配列になっています😄🌈。 実際に、以下のようにしてデータにアクセスできます🚀🔑。 $data = $sheet->rangeToArray("A1:N9"); $cost = $data[0][2]; // C1の内容を$costという変数に入れます この場合、$data[0][2]はC1のデータを意味します。$data[0][0]はA1のデータ、$data[12][0]はA13のデータ、$data[6][2]はC7のデータとなります😊👌。 注意点として、配列のインデックスは0から始まるため、$data[0][0]がA1、$data[12][0]がA13、$data[6][2]がC7に対応します✅📍。 もし文法エラーが出ている場合は、別の部分でエラーが起こっている可能性があります🤔💭。エラーが出る部分をもう一度確認してみてくださいね😉🔍! 上記の方法で、希望される形でデータを取得できるはずです🎊🎁。もし、何か問題があればお気軽にお問い合わせください🙋♀️💖。PHPでのExcelファイル操作、頑張ってくださいね👏✨!
その他の回答 (1)
- Kaneyan-R
- ベストアンサー率42% (1340/3126)
PHPはよく分かりませんが、ちょっと検索してみると、一旦一行分の配列を変数に読み込んでから、列をループで指定しているのが有りました。 以下の『■エクセルファイルの「読み込み」内容をHTMLのTABLE表示』の部分。※HTML部分は割愛してます。 http://vbnettips.blog.shinobi.jp/php/php%20phpspreadsheet%20%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB%E3%83%95%E3%82%A1%E3%82%A4_224 ――――――――――――――――――― $arrWK = $arrData[0]; for ($ii = 0; $ii <= (count($arrWK) - 1); $ii++) { echo $arrWK[$ii]; } for ($i = 1; $i <= (count($arrData) - 1); $i++) { $arrWK = $arrData[$i]; for ($ii = 0; $ii <= (count($arrWK) - 1); $ii++) { echo $arrWK[$ii]; } } ―――――――――――――――――――――― $arrData[$i][$ii] で取り出せるなら、$arrWKに格納する必要は無いのでは? ってことで、 $arrWK = $data[2]; $cost = $arrWK[0]; こんな感じになるのかな?
補足
現在、自宅 linux サーバー側での Excel ファイル処理を PHP で行っているので、コメント頂いた内容はそのままでは使えませんが参考になりそうです。ありがとうございました。
お礼
早速のコメント、ありがとうございました。 >もし文法エラーが出ている場合は、別の部分でエラーが起こっている可能性があります ご指摘のとおりで、見えない全角文字が入っていました。 修正した結果、 $data[$i][$j] のようにしてもエラーが出なくなり、Excel セルの内容が配列から読み出せるようになりました。 的確なアドバイス、深く感謝いたします。