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檔案了