php word文档中写入数据

<?php

namespace app\api\controller;

/**
 * 首页接口
 */
class Coursess extends Api
{
    //签订合同
    public function contract()
    {
        $id = $this->request->post('id');
        $qian = $this->request->post('qian');
        
        if (!$id || !$qian) {
            $this->error(__('Invalid parameters'));
        }
        $order_house = OrderHouse::find($id);
        if (!$order_house) {
            $this->error(__('订单不存在'));
        }
        if ($order_house->contract == 1) {
            $this->error(__('合同已签署'));
        }
        $order = Order::where('order_first_id|order_two_id',$order_house->id)->find();
        if (!$order) {
            $this->error(__('订单不存在'));
        }
        
        $j_order = OrderHouse::find($order->order_first_id);
        if (!$j_order) {
           $this->error(__('订单不存在'));
        }
        $j_time = explode(' - ',$j_order->reservation);
        
        $date1 = new \DateTime($j_time[0]);
        $date2 = new \DateTime($j_time[1]);
        $interval = $date1->diff($date2);
        $day = $interval->format('%a');
        
        $s_time = explode('-',$j_time[0]);
        $e_time = explode('-',$j_time[1]);
        $j_user_real = UserReal::where('user_id',$j_order->user_id)->find();
        if (!$j_user_real) {
            $this->error(__('未找到实名信息'));
        }
        $y_order = OrderHouse::find($order->order_two_id);
        if (!$y_order) {
           $this->error(__('订单不存在'));
        }
        $y_user_real = UserReal::where('user_id',$y_order->user_id)->find();
        if (!$y_user_real) {
            $this->error(__('未找到实名信息'));
        }
        $data = [
            'j_name' => $j_user_real->username,
            'j_card' => $j_user_real->card,
            'y_name' => $y_user_real->username,
            'y_card' => $y_user_real->card,
            'j_address' => $j_order->house->address.$j_order->house->add_detailed,
            'j_mian' => $j_order->house->house_area,
            'y_address' => $y_order->house->address.$y_order->house->add_detailed,
            'y_mian' => $y_order->house->house_area,
            
            's_year' => $s_time[0],
            's_month' => $s_time[1],
            's_ri' => $s_time[2],
            
            'e_year' => $e_time[0],
            'e_month' => $e_time[1],
            'e_ri' => $e_time[2],
            'day' => $day,
            
            'k_year' => $s_time[0],
            'k_month' => $s_time[1],
            'k_ri' => $s_time[2],
            
            'j_dprice' => Order::getChineseNumber($j_order->price),
            'j_price' => $j_order->price,
            'y_dprice' => Order::getChineseNumber($y_order->price),
            'y_price' => $y_order->price,
            
            'j_mobile' => $j_order->user->mobile,
            'y_mobile' => $y_order->user->mobile,
            
            'q_y' => date('Y'),
            'q_m' => date('m'),
            'q_r' => date('d'),
            
        ];
        
        if ($order->contract != '') {
            $bg = $order->contract;
        }else{
            $bg = '/hfht.docx';
        }
        
        if ($id == $order->order_first_id) {
            $type = 1;
        }else{
            $type = 2;
        }
        
        $contract = Order::words($data,$bg,$type, $qian);
        // halt($contract);
        if ($contract) {
            $order->contract = $contract;
            $order->save();
            $order_house->contract = 1;
            $order_house->save();
            $this->success('签订成功');
        }else{
            $this->error(__('签订失败'));
        }
        
    }



    //合同填充
    public static function words($data, $bg, $type, $qian){
        
        $templatePath = ROOT_PATH."public".$bg;
        
        $tpl = new \PhpOffice\PhpWord\TemplateProcessor($templatePath);
        
        //填充数据
        foreach ($data as $key => $value) {
            $tpl->setValue($key, $value);
        }
        if ($type == 1) {
            $tpl->setImageValue('j_qian', array('path' => ROOT_PATH."public".$qian, 'width' => 50, 'height' => 50, 'ratio' => false));
            
        }else{
            $tpl->setImageValue('y_qian', array('path' => ROOT_PATH."public".$qian, 'width' => 50, 'height' => 50, 'ratio' => false));
            
        }
        
        // $tpl->setImageValue('y_qian', ROOT_PATH."public".$qian);
        
        //文件名
        // if ($type == 1) {
        //     $title = 'queren';
        // }else{
        //     $title = 'songji';
        // }
        $file = time() . '.docx';//文件名
        // $encoded_filename = urlencode($file); // 将文件名进行urlencode转码
        $url = ROOT_PATH.'public';
        $path = '/contract/'.str_replace('+', '%20', $file);
        $tpl->saveAs($url.$path);
        // return \fast\Http::sendToBrowser($path,true);
        return $path;
    }


}

文档样式
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值