1.为了避免与原文件系统混淆,手动创建保存文件夹(手动保存到文件系统,记得检查重名并把重名文件修改)
$uri = 'public://your_folder/';
$file_path = drupal_realpath($uri);
$filename = $opt['filename'].'.xls';
$file_exist_path = $file_path.'/'.$filename;
if(!is_dir($file_path)) {//如果不存在目录则创建目录
drupal_mkdir($uri);
}
2.将PHPExcel生成的excel文件保存到目录下
$objPHPExcel->setActiveSheetIndex(0);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save($file_exist_path);//保存excel文件
3.在文件系统中插入对应保存文件信息,并得到文件fid
global $user;
$insert = db_insert('file_managed');
$insert->fields(array(
'uid' => $user->uid,
'filename' => $filename,
'uri' => $uri .'/'. $filename,
'filemime' => 'application/vnd.ms-excel',
'filesize' => $filesize,
'status' => 1,
'timestamp' => REQUEST_TIME
));
$fid = $insert->execute();
4.把fid加入到 file_usage表
$file = file_load($fid);
file_usage_add($file, 'module', 'type', $fid);
5.现在就能通过fid来操作PHPExcel文件生成的excel文件了