首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用maatwebsite导入时显示为null的Date列。

使用maatwebsite导入时显示为null的Date列。
EN

Stack Overflow用户
提问于 2022-03-31 13:22:54
回答 1查看 922关注 0票数 0

尝试使用laravel导入excel。日期列将为空。

实际列标题为日期。我试着将它重命名为某个随机名称,然后导入它,它可以工作。尝试使用下列格式设置选项:

  • 数字总则
  • 文本
  • 日期

maatwebsite/excel版本为"^3.1“

拉拉版本为6.20.41

Excel文件:

示例Excel文件

代码:

代码语言:javascript
复制
<?php

namespace App\Imports\Master;

use App\Models\Master\RiscoveryInsuranceSettlement;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\SkipsFailures;
use Maatwebsite\Excel\Concerns\SkipsOnFailure;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithValidation;
use PhpOffice\PhpSpreadsheet\Shared\Date;
use DB, Auth;
use Illuminate\Support\Facades\Log;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
use Maatwebsite\Excel\Concerns\WithMapping;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Carbon\Carbon;


class RiscoverySettlementImport implements ToModel,WithHeadingRow
{
    use Importable,SkipsFailures;


    /**
     * Merge excel date and time
     * @param $date
     * @param $time
     * @return static
     */
    public function __construct()
    {
        $this->startRow = 1;
    }

    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        dd($row);
    }
   }

结果

代码语言:javascript
复制
array:37 [
  "insurance_company" => "Aditya Birla Insurance"
  "policy_number" => "RISVRY00287267"
  "carrier_policy_no" => "GHI-AIRPAY-000002"
  "date" => null
  "month" => 44593
  "name_of_product" => "Group Health Care"
  "type" => "Group Health Care"
  "total_premium" => 5963
  "without_gst_amount" => 5053.3898305085
  "ncb_amount" => null
  "od_premium" => 0
  "tp_premium" => 0
  "irda_od" => 0
  "irda_tp" => 0
  "irda_commission" => 0
  "irda_commission_amount" => 0
  "irda_tp_amount" => 0
  "irda_od_amount" => 0
  "umbo_od_tp_commission" => 0
  "excess_digital_enablement" => null
  "irda_excess" => 0
  "irda_excess_amount" => 0
  "name_of_partner" => "AIRPAY"
  "payout" => 0.38
  "partner_payout_od" => 0
  "partner_payout_tp" => 0
  "payout_amount" => 1920.2881355932
  "payment_reference" => "8e98172033bb33d48deabce6"
  "insurance_co_booking_status" => null
  "status_billedunbilled" => null
  "invoice_number" => null
  "invoice_amount" => null
  "receipt_date" => null
  "partner_paid_status" => null
  "vendor" => null
  "amount" => null
  "comments" => null
]
EN

回答 1

Stack Overflow用户

发布于 2022-03-31 14:44:14

如果要将这些数据插入数据库,则必须创建一个模型来导入数据。我认为您很清楚如何在导入类中创建模型,删除WithHeadingRow,因为不再按列标题导入数据。

从…

代码语言:javascript
复制
class RiscoverySettlementImport implements ToModel,WithHeadingRow

代码语言:javascript
复制
class RiscoverySettlementImport implements ToModel
代码语言:javascript
复制
public function model(array $row)
    {
         return new model_name([
            'col_1' => $row[0], // col_1 will come from your model
            'col_2' => $row[1], // col_2 will come from your model
            'col_3' => $row[2], // col_3 will come from your model
             ... Add all columns
        ]);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71693277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档