tp5之 Excel文件导入数据库

参考地址,参考下面,引入phpexcel 包

https://blog.csdn.net/weixin_42122979/article/details/80804460

html 页面

<div class="wrapper wrapper-content animated fadeInRight">
    
    <div class="row">     
        <div class="col-sm-6">
            <div class="ibox float-e-margins">
                <div class="ibox-title">
                    <h5>Excel导入数据库</h5>
                </div>
              
                <div class="ibox-content">
                    <form class="form-horizontal m-t" id="signupForm" action="{:url('admin/excel/addexcel')}" method="post" enctype="multipart/form-data">
                        <div class="form-group">
                            <label class="col-sm-3 control-label-left">数据表名称:</label>
                            <div class="col-sm-8">
                                <input id="table" name="table"  placeholder="以前缀开头" class="form-control" type="text">
                                <!-- <span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 这里写点提示的内容</span> -->
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-3 control-label-left">选择Excel文件:</label>
                            <div class="col-sm-8">
                                <input type="file" name="file">
                            </div>
                        </div>
                       
                        <div class="form-group">
                            <div class="col-sm-8 col-sm-offset-3">
                                <button class="btn btn-primary" id="edit" type="submit">提交</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

php代码

public function addexcel()
{
	vendor("PHPExcel.PHPExcel");   //获取PHPExcel类 
    $excel = new \PHPExcel();  

    $file = request()->file('file');  

    // var_dump($file);
    // die;

    // $info = $file->validate(['size'=>15678,'ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'excel');

    $info = $file->validate(['ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'excel');

    //  ["pathName":"SplFileInfo":private]=>
		  // string(105) "E:\phpstudy2018\PHPTutorial\WWW\gaoxie\h_layui\public\excel\20190827\cf76bbbc649be41f65c2bc9406dc4c8f.xls"
		  // ["fileName":"SplFileInfo":private]=>
		  // string(36) "cf76bbbc649be41f65c2bc9406dc4c8f.xls"

    if($info){
    	$exclePath = $info->getSaveName();  //获取文件名  
        $file_name = ROOT_PATH . 'public' . DS . 'excel' . DS . $exclePath;   //上传文件的地址  

        $na = explode('.',$exclePath);
      
        if($na['1'] =='xlsx' ){
		    $objReader = \PHPExcel_IOFactory::createReader('Excel2007'); 
		}else{
		    $objReader = \PHPExcel_IOFactory::createReader('Excel5'); 
		}


        $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8');  //加载文件内容,编码utf-8  
        
        $excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式  
        // array_shift($excel_array);  //删除第一个数组(标题);  
        $arr  = reset($excel_array);
        unset($excel_array[0]);
        $data = [];  
        $i=0;  
        // 下面有几个字段名就得有几个语句
        foreach($excel_array as $k=>$v) {  
            // $data[$k][$arr[0]] = $v[0];  
            // $data[$k][$arr[1]] = $v[1];  
            // $data[$k][$arr[2]] = $v[2];  
        	$count = count($v);

        	for($n = 0;$n < $count; $n++){

            	$data[$k][$arr[$n]] = $v[$n]; 
            }
            $i++;  
        }

        $table = $_POST['table'];
        
        // $res = Db::table('sp_excel')->insertAll($data);
        $res = Db::table($table)->insertAll($data);

        echo "<pre>"; 
        var_dump($res);
        echo '导入数据库成功';
        // var_dump($data);
        die;

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于TP6(ThinkPHP 6)框架,您可以使用PHPExcelPhpSpreadsheet库来导入Excel文件。以下是一个简单的示例代码: 首先,您需要安装PHPExcelPhpSpreadsheet库。您可以通过Composer进行安装: ``` composer require phpoffice/phpspreadsheet ``` 然后,您可以创建一个控制器方法来处理Excel文件导入: ```php use PhpOffice\PhpSpreadsheet\IOFactory; class ExcelController extends \think\Controller { public function import() { // 获取上传的Excel文件 $file = $this->request->file('excel_file'); // 读取Excel文件 $spreadsheet = IOFactory::load($file->getRealPath()); // 获取第一个工作表 $worksheet = $spreadsheet->getActiveSheet(); // 循环读取数据 foreach ($worksheet->getRowIterator() as $row) { $rowData = []; foreach ($row->getCellIterator() as $cell) { $rowData[] = $cell->getValue(); } // 在这里可以对每一行的数据进行处理,比如保存到数据库等操作 // $rowData 包含了一行的数据,可以根据需要进行处理 } // 导入成功后的操作... return '导入成功!'; } } ``` 在上面的代码中,我们首先使用`IOFactory::load()`方法加载Excel文件,然后获取第一个工作表,并循环读取每一行的数据。您可以根据需要对每一行的数据进行处理,如保存到数据库等操作。 请注意,上述代码仅是一个简单的示例,您可能需要根据实际需求进行适当的修改。同时,还需要添加文件上传表单以及相应的路由配置。 希望这可以帮助到您!如果您有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值