【问题标题】:export database table to csv laravel将数据库表导出到 csv laravel
【发布时间】:2014-08-26 17:41:34
【问题描述】:

您好,我正在尝试将数据库表用户导出到 csv 文件,并且我在控制器中使用以下方法:

 public function getExport()
{
    $table = User::all();
    $output='';
      foreach ($table as $row) {
          $output.=  implode(",",$row->toArray());
      }
      $headers = array(
          'Content-Type' => 'text/csv',
          'Content-Disposition' => 'attachment; filename="ExportFileName.csv"',
      );

    return Response::make(rtrim($output, "\n"), 200, $headers);
}

但是当我打开“ExportFileName.csv”时,我没有得到列标题,并且还得到了一些不在数据库中的其他垃圾?

在 Laravel 4 中最好和最简单的方法是什么

谢谢

【问题讨论】:

    标签: php mysql laravel laravel-4


    【解决方案1】:

    您尚未将标题添加到 CSV。在输出行之前,您应该执行以下操作:

    foreach ($table[0] as $column => $value) {
        $output .= "$column,";
    }
    rtrim($output, ",");
    $output .= "\n";
    

    (有更好的方法来做到这一点)。

    您还需要考虑值中的特殊字符:

    • "" 中的每个值包装起来以处理逗号,
    • 转义和引号,以及
    • 删除或替换任何\ns。

    【讨论】:

    • 我找到了更好的用法,我要使用 Laravel-Excel 包,谢谢帮助
    猜你喜欢
    • 1970-01-01
    • 2018-03-20
    • 2012-12-22
    • 2023-03-10
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多