在一些项目中,经常会需要将Excel文件导入到Mysql或其他数据库中,我们这里使用PHPExcel来进行导入。
PHPExcel是一个使用PHP语言开发的Excel操作类,拥有读取、写入等强大功能。
我们可以读取服务器上的文件进行导入,也可以通过上传进行导入。
首先进行文件上传:
$file = '/tmp/excel.xlsx';
move_uploaded_file($_FILES["file"]["tmp_name"], $file);
之后我们需要进行一些设置,防止导入大文件时超时等:
ini_set("memory_limit","-1");
set_time_limit(1800);
在PHPExcel中,可以设置缓存已节省内存开始,但会影响读取与写入单元格的速度(官方文档中有此说明)。如果你的内存勾搭,获取并不需要进行缓存设置,但对于小内存的服务器,这是很有必要的。PHPExcel有多种缓存机制,我们使用gzip压缩方式来使用:
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
if (!PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {
die($cacheMethod . " caching method is not available" . EOL);
}
官方文档中介绍,在脚本执行完成之前,已初始化过的缓存设置将不能被更