我正在尝试在 Laravel 中使用 ajax 方法下载一个 excel 文件。控制器功能:
$myFile = Excel::create($name, function ($excel) use ($export) {
$excel->sheet('Data', function ($sheet) use ($export) {
$sheet->fromArray($export);
$sheet->cells('A1:N1', function ($cells) {
$cells->setBackground('#dbdbdb');
$cells->setFontColor('#000000');
$cells->setFontWeight('bold');
$cells->setFont(array(
'family' => 'Calibri',
'size' => '9',
));
});
$sheet->setStyle(array(
'font' => array(
'name' => 'Calibri',
'size' => 9,
),
));
});
});
$myFile = $myFile->string('xlsx');
$response = array(
'name' => $name,
'file' => "data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64," . base64_encode($myFile),
);
return response()->json($response);
Run Code Online (Sandbox Code Playgroud)
阿贾克斯功能:
$(document).on('click', '.ExportJobs', function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
} …Run Code Online (Sandbox Code Playgroud) 我有一个简单的查询,使用 maat 网站生成文件
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use App\MyDB;
use Auth;
class ReportExport implements FromCollection
{
public function collection()
{
$email = Auth::user()->email;
return MyDB::MyFunction($email)
->select('Reference_Number')->get();
}
}
Run Code Online (Sandbox Code Playgroud)
一切工作正常,但我如何添加标题?
我尝试查看文档,但它让我更加困惑。 https://laravel-excel.maatwebsite.nl/docs/3.0/export/mapping
当我尝试在 Ubuntu 中的服务器上使用 Maatwebsite 3.1 版本导入 Excel 表格时,出现此类错误。
错误:
Maatwebsite \ Excel \ Exceptions \ NoTypeDetectedException
无法检测到 ReaderType 或 WriterType。确保将有效的扩展名传递给文件名或传递显式类型。
控制器
$path = $request->file('mcafile')->getRealPath();
$data = \Excel::import(new UsersImport,$path);
Run Code Online (Sandbox Code Playgroud)
但是相同的导入 excel 代码在我的本地 Windows 机器上运行良好。我上传的每个代码和文件都是相同的。但是在本地和服务器中的工作方式不同。任何人都可以请帮忙。
我正在尝试使用 PHP 7、Laravel 5.8、Maatwebsite Excel 3.1 导出到 excel。我成功地在视图刀片上显示并执行过滤器。
模型:使用 App\UserResponse;
控制器
public function userresponseReport(Request $request,$export=false)
{
$data['title'] = 'User Response';
$userresponses = DB::table('user_response as g')
->select(
//DB::raw('DATE(g.created_at) as created_date'),
DB::raw('g.created_at as created_date'),
'g.msisdn',
'g.game_code',
'g.answer',
'g.answer_code',
'g.Amount_charged',
'g.payment_ref',
'g.status',
'g.user_channel'
)
->orderByRaw('g.created_at DESC');
$start_date = $request->start_date;
$end_date = $request->end_date;
$render=[];
if(isset($request->start_date) && isset($request->end_date))
{
$userresponses=$userresponses->whereBetween('created_at',[$start_date.' 00:00:00',$end_date.' 23:59:59']);
$render['start_date']=$request->start_date;
$render['end_date']=$request->end_date;
}elseif(isset($request->start_date))
{
$userresponses=$userresponses->where('created_at',$request->start_date);
$render['start_date']=$request->start_date;
}
if(isset($request->msisdn))
{
$userresponses=$userresponses->where('msisdn','like','%'.$request->msisdn.'%');
$render['msisdn']=$request->msisdn;
}
if(isset($request->game_code))
{
$userresponses=$userresponses->where('game_code','like','%'.$request->game_code.'%');
$render['game_code']=$request->game_code;
}
if(isset($request->user_channel))
{
$userresponses=$userresponses->where('user_channel','like','%'.$request->user_channel.'%');
$render['user_channel']=$request->user_channel;
}
if(!empty($export)) …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Laravel 中导入 Excel 数据并插入到数据库中。我正在使用 maatwebsite/excel version 3 composer package 和 laravel version 5.8
错误截图: https : //imgur.com/a/2KXCE0g
刀片文件:import.blade.php
<form action="{{ url('/import-excel/import') }}" method="POST" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group">
<label for="importFile">Select Import File</label>
<input type="file" name="select_file" class="form-controll">
</div>
<input type="submit" name="upload" class="btn btn-success" value="Import File">
</form>
Run Code Online (Sandbox Code Playgroud)
控制器文件:ImportExcelController.php
public function import(Request $request){
$this->validate($request, [
'select_file' => 'required|mimes:xls,xlsx'
]);
$path = $request->file('select_file')->getRealPath();
$data = Excel::import($path)->get();
if($data->count() > 0){
foreach($data->toArray() as $key => $value){
foreach($value as $row){
$insert_data[] = array(
'CustomerName' => …Run Code Online (Sandbox Code Playgroud) 尝试通过Mac的composer在XAMPP 7.1.32 rev 1中安装maatwebsite / excel。如何在Mac的XAMPP中启用这些扩展,或者是否有任何其他问题。请帮我。
composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- maatwebsite/excel 3.1.10 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.11 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.12 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.13 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Laravel 中导入 Excel 数据并插入到数据库中。我正在使用 maatwebsite/excel 版本 3 作曲家包。
错误:未定义索引:customer_name
刀片文件:import_excel.blade.php
<form method="post" enctype="multipart/form-data" action="{{ url('/import_excel/import') }}">
{{ csrf_field() }}
<div class="form-group">
<table class="table">
<tr>
<td width="40%" align="right"><label>Select File for Upload</label></td>
<td width="30">
<input type="file" name="select_file" />
</td>
<td width="30%" align="left">
<input type="submit" name="upload" class="btn btn-primary" value="Upload">
</td>
</tr>
<tr>
<td width="40%" align="right"></td>
<td width="30"><span class="text-muted">.xls, .xslx</span></td>
<td width="30%" align="left"></td>
</tr>
</table>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
导入文件:CustomerImport.php
public function model(array $row)
{
$data = [];
foreach ($row as $value)
{
$data[] = …Run Code Online (Sandbox Code Playgroud) 我正在使用 Laravel-5.8 和 Maatwebsite-3.1 导出到 Excel。
<?php
namespace App\Exports;
use App\User;
use Auth;
class StudentExport implements FromCollection, ShouldAutoSize, WithHeadings, WithMappings, WithCustomStartCell
{
private $headings = [
'Student ID',
'Name',
'Class',
'Status',
'Teacher'
];
public function collection()
{
$current_terms = DB::table('appraisal_identity')->select('term_name')->where('company_id', $userCompany)->where('is_current', 1)->first()->term_name;
$publishedgoals = AppraisalGoal::select('employee_code')->where('is_published', 1)->where('company_id', $userCompany)->groupBy('employee_code')->get();
$published_goals = DB::table('hr_students AS e')
->join('hr_employees AS em','em.id','=','e.teacher_id')
->select(
'e.student_id',
DB::raw('CONCAT(e.first_name, " ", e.last_name) AS full_name'),
'e.student_class,
DB::raw('(CASE WHEN e.is_status = 3 THEN "Excellent" WHEN e.is_status = 2 THEN "Good" WHEN e.is_status = …Run Code Online (Sandbox Code Playgroud) 我使用 "maatwebsite/excel": "^3.1" 导出到 Excel,但是当我导出时,值为 0 或 0.0 的列将被忽略,并且单元格留空。示例代码:
public function array(): array
{
return $this->data;
}
public function columnFormats(): array
{
return [
'C' => NumberFormat::FORMAT_TEXT,
'E' => '0.00',
'F' => '0.00',
'G' => '0.00'
];
}
public function map($rows): array
{
return [
$rows['employeeNumber'],
$rows['basicSalary'],
$rows['totalAllowance'],
$rows['grossSalary']
];
}
Run Code Online (Sandbox Code Playgroud)
我使用 Maatwebsite 包在 Laravel 8 中导入 Excel 文件。安装该包并在 app.php 中添加所需的别名和提供程序后,我还执行了以下命令。
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
Run Code Online (Sandbox Code Playgroud)
但是,当我使用模型 Mymodel (我拥有的模型)创建导入时,出现以下错误。
未定义 Maatwebsite\Excel\Concerns\ToModel;
进口类
class Importer implements ToModel
{
public function model(array $row)
{
return new Universite([
//
]);
}
}
Run Code Online (Sandbox Code Playgroud) laravel ×8
excel ×2
php ×2
ajax ×1
import ×1
laravel-5.4 ×1
laravel-5.8 ×1
phpexcel ×1
ubuntu ×1
windows ×1