XLS内容类型 - 移动设备

时间:2015-05-15 08:09:06

标签: php excel laravel mobile

我的Laravel 4.2 php项目已导出到excel功能,该功能在桌面上运行,但完全无法在移动设备上运行。我用" XLS"保存excel文件扩展和" application / vnd.ms-excel"内容类型:

       $fn = 'filename.xls';
       $filename = storage_path() . '/' . $fn;

        App::finish(function($request, $response) use ($filename) {
            unlink($filename);
        });

        $headers = array(....);

        $excel = new Excel();
        $excel->setTheader($headers);
        $excel->addArray(..);
        $excel->generateXML($filename);

        return Response::download($filename, $fn, array('Content-Type' => 'application/vnd.ms-excel; charset=utf-8'));

所以在我的iphone上我安装了Microsoft Excel,但我的手机引发了这个错误:

  

阅读文档时发生错误

点击"打开excel"我明白了:

  

excel无法打开此工作簿

当我将内容类型更改为

application/octet-stream

excel文件已打开,但就像文本文件一样。

我做错了什么,是我的应用程序或手机中的问题?

1 个答案:

答案 0 :(得分:1)

.xls是XL 2003及更早版本中使用的旧文件类型。 Excel for desktop仍支持这些文件类型,并以兼容模式打开它们。 Excel 2007引入了基于XML的新文件类型。

我怀疑Excel的移动版本是否会支持7年前已被取代的文件格式。移动Excel没有桌面Excel的完整功能集,兼容模式可能是积压的事情中最不重要的东西。

将文件另存为基于XML的xlsx文件。如果构造正确,这些将在移动Excel上正常工作。