在laravel中使用PHPExcel将csv转换为excel?
我找到了这个答案, 但我已经在拉雷维尔4号试过了,我无法让它工作,任何帮助都将不胜感激 我的代码在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
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');