適当に生きる - つれづれ -

生きる中で思ったことを適当に綴っています。



PHPでエクセルをブラウザに表示する方法

以前、ブラウザにエクセルを表示させることは、できないのと言われたことがありました。

確かに、office365などをいじっているとブラウザにエクセルが表示されるわけですが、その時はできないと答えたのですが、
なんかやる方法があるのか?と思って少し調べてみました。

github.com

今回はこちらを使用してPHPにエクセルを表示する方法を紹介するのですが、office365でマイクロソフトが行っている様には
行かないので悪しからず。

PHPExcel/Classes/PHPExcel at 1.8 · PHPOffice/PHPExcel · GitHub

のIOFactory.phpというクラスを使用する方法です。

ソースは、下記の様なソースになります。$inputFileTypeに設定する値は、表示したいエクセルのバージョンにより変わります

<?php

include 'PHPExcel/IOFactory.php';
$inputFileType = 'Excel5';
$inputFileName = 'MyExcelFile.xls';

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
$objWriter->save('php://output');
exit;
?>

ExcelファイルがExcel 2003(xls)以前ではなくExcel 2007(xlsx)またはそれ以降の場合

<?php
include 'PHPExcel/IOFactory.php';
$inputFileType = 'Excel2007';
$inputFileName = 'MyExcelFile.xlsx';

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
$objWriter->save('php://output');
exit;
?>

これで確かにエクセルはブラウザに表示されます。しかし、HTML形式で表示されるのとxlsのバージョンのエクセルでしか試していないのですが、
あんまり表示がきれいでないのですね...

なにか、他に良い方法知っている方がいらしたらコメントで教えてくださいm(_ _)m

↓この方法がいいかもしれません。
ivystar.jp