我的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文件已打开,但就像文本文件一样。
我做错了什么,是我的应用程序或手机中的问题?
答案 0 :(得分:1)
.xls是XL 2003及更早版本中使用的旧文件类型。 Excel for desktop仍支持这些文件类型,并以兼容模式打开它们。 Excel 2007引入了基于XML的新文件类型。
我怀疑Excel的移动版本是否会支持7年前已被取代的文件格式。移动Excel没有桌面Excel的完整功能集,兼容模式可能是积压的事情中最不重要的东西。
将文件另存为基于XML的xlsx文件。如果构造正确,这些将在移动Excel上正常工作。