在laravel中使用PHPExcel将csv转换为excel?

在laravel中使用PHPExcel将csv转换为excel?,php,excel,csv,laravel,laravel-excel,Php,Excel,Csv,Laravel,Laravel Excel,我找到了这个答案, 但我已经在拉雷维尔4号试过了,我无法让它工作,任何帮助都将不胜感激 我的代码 public function CsvExcelConverter($filename){ $objReader = Excel::createReader('CSV'); $objReader->setDelimiter(";"); $objPHPExcel = $objReader->load('uploads/'.$file

我找到了这个答案,

但我已经在拉雷维尔4号试过了,我无法让它工作,任何帮助都将不胜感激

我的代码

    public function CsvExcelConverter($filename){
        $objReader = Excel::createReader('CSV');
        $objReader->setDelimiter(";");
        $objPHPExcel = $objReader->load('uploads/'.$filename);
        $objWriter = Excel::createWriter($objPHPExcel, 'Excel5');
       //new file
       $new_filename = explode('.',$filename);
       $new_name = $new_filename[1];
       $objWriter->save($new_name.'.xls');
       return $new_name.'.xls';
    }

如果使用Laravel中的
maatwebsite/excel
库,则只能使用本机PHPExcel实例方法,而不能使用静态方法。要从CSV转换为excel,可在以下位置找到此代码:

Excel::load($filename,function($file){
//修改文件内容
})->setFileName($new_name)->store('xls');

理论上,您应该创建自定义类来设置分隔符:

class CSVExcel  extends Excel {
    protected $delimiter  = ';';
}
现在你可以使用:

CSVExcel::load('csvfilename.csv')->setFileName('newfilename')->export('xls');

但问题是,
$delimiter
在本例中没有使用。分隔符支持似乎是不久前添加的,所以可能有一个bug或者需要以另一种方式使用。为了以防万一,我添加了一个问题:

谢谢您的回答,但由于某些原因,我们似乎无法在加载时设置分隔符,但我发现您可以在配置文件中设置它

vendeor/maatwebsite/excel/src/config/csv.php

然后只需指定分隔符。这样,当加载文件时,它实际上会分离每个条目,当转换它时,每个条目都在自己的单元格中


谢谢您的帮助。

您的代码在哪里?你想用吗?您应该提供您的代码和示例CSV文件您好,谢谢您的回复;是的,我使用的是maatwebsite.nl/laravel-excel/docs,我在示例中找到了代码,但系统抱怨createReader和createWriter函数不存在。你应该质疑你的代码确定我添加了代码。
CSVExcel::load('csvfilename.csv')->setFileName('newfilename')->export('xls');