Thinkphp5如何将导出的excel表格存储到服务器中项目目录的指定目录中?

/**

  • excel表格导出
  • @param string $fileName 文件名称
  • @param array $headArr 表头名称
  • @param array $data 要导出的数据
  • @author static7 */

function excelExport($fileName = '', $headArr = [], $data = []) {

$fileName .= "_" . date("Y_m_d", Request::instance()->time()) . ".xls";

$objPHPExcel = new \PHPExcel();

$objPHPExcel->getProperties();

$key = ord("A"); // 设置表头

foreach ($headArr as $v) {

    $colum = chr($key);

    $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);

    $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);

    $key += 1;

}

$column = 2;

$objActSheet = $objPHPExcel->getActiveSheet();

foreach ($data as $key => $rows) { // 行写入

    $span = ord("A");

    foreach ($rows as $keyName => $value) { // 列写入

        $objActSheet->setCellValue(chr($span) . $column, $value);

        $span++;

    }

    $column++;

}

$fileName = iconv("utf-8", "gb2312", $fileName); // 重命名表

$objPHPExcel->setActiveSheetIndex(0); // 设置活动单指数到第一个表,所以Excel打开这是第一个表

header('Content-Type: application/vnd.ms-excel');

header("Content-Disposition: attachment;filename='$fileName'");

header('Cache-Control: max-age=0');

$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

$objWriter->save('php://output'); // 文件通过浏览器下载

exit();

}
//这是通知浏览器下载这个excel文件,那么如何不需要通知浏览器下载到本地,直接生成excel文件到指定目录呢

阅读 3.7k
1 个回答

已经解决,直接在save 处写服务器绝对路径既可
public function get_test()

{
$file = '456.xls';
  $file_path = ROOT_PATH.'uploads/Tmp/'.$file;
$PHPExcel = new \PHPExcel();
$PHPSheet = $PHPExcel->getActiveSheet();
$PHPSheet->setTitle("demo"); //给当前活动sheet设置名称
$PHPSheet->setCellValue("A1","姓名")->setCellValue("B1","分数");//表格数据
$PHPSheet->setCellValue("A2","张三")->setCellValue("B2","2121");//表格数据
$objWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007');
$objWriter->save($file_path); //文件直接下载我指定的服务器目录中
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题