使用spreadsheet_excel_reader在多个表数据库中插入批处理多表Codeigniter

时间:2018-02-17 05:48:39

标签: php database codeigniter phpexcel phpexcelreader

用你的代码度过美好的一天。

今天,当你的上传文件xls和自动插入两个数据库时,我们仍然使用spreadsheet_excel_reader和insert_batch(),并且使用相同的文件xls表示table_one和table_two,以及如何获取不同的数据库插入或如何使用单个文件.xls自动插入到两个(table_one& table_two)数据库。

当我谷歌关于文档spreadsheet_excel_reader时,只是卡住了,无法找到任何内容。

此代码,

if ($this->upload->do_upload('file')) {
        $data = $this->upload->data();
        // if ($data == empty(var)) {
        //  return base_url();
        // }else{
        //  $data = $this->upload->data();
        // }
        @chmod($data['full_path'], 0777);

        $this->load->library('Spreadsheet_Excel_Reader');
        $this->spreadsheet_excel_reader->setOutputEncoding('CP1251');

        $this->spreadsheet_excel_reader->read($data['full_path']);
        $sheets = $this->spreadsheet_excel_reader->sheets[0];
        error_reporting(0);

        $data_excel = array();
        for ($i = 2; $i <= $sheets['numRows']; $i++) {
            if ($sheets['cells'][$i][1] == '') break;
                $data_excel[$i - 1]['id_hari']    = $sheets['cells'][$i][1];
                $data_excel[$i - 1]['tanggal']   = $sheets['cells'][$i][2];
                $data_excel[$i - 1]['detail'] = $sheets['cells'][$i][3];
        }
        $this->db->insert_batch('table_two', $data_excel);  

        $data_excel2 = array();
        for ($i = 2; $i <= $sheets['numRows']; $i++) {
            if ($sheets['cells'][$i][2] == '') break;
                $data_excel[$i - 1]['senin']    = $sheets['cells'][$i][1];
                $data_excel[$i - 1]['selasa']   = $sheets['cells'][$i][2];
                $data_excel[$i - 1]['rabu'] = $sheets['cells'][$i][3];
        }
        $this->db->insert_batch('table_one', $data_excel2);  

        // @unlink($data['full_path']);
        redirect('excel-import');
        //memulai else
    }else{
        $this->session->set_flashdata('error', 'Please select xls/csv file');
        //selesai session
        redirect(base_url(),'refresh');
    }

我认为只有这个代码的问题以及当你插入一个文件.xls和逻辑自动插入数据库的2表时如何制作逻辑,如果你需要任何代码和其他代码我可以编辑这个并添加其他代码供审查。

$data_excel = array();
        for ($i = 2; $i <= $sheets['numRows']; $i++) {
            if ($sheets['cells'][$i][1] == '') break;
                $data_excel[$i - 1]['id_hari']    = $sheets['cells'][$i][1];
                $data_excel[$i - 1]['tanggal']   = $sheets['cells'][$i][2];
                $data_excel[$i - 1]['detail'] = $sheets['cells'][$i][3];
        }
        $this->db->insert_batch('table_two', $data_excel);  

        $data_excel2 = array();
        for ($i = 2; $i <= $sheets['numRows']; $i++) {
            if ($sheets['cells'][$i][2] == '') break;
                $data_excel[$i - 1]['senin']    = $sheets['cells'][$i][1];
                $data_excel[$i - 1]['selasa']   = $sheets['cells'][$i][2];
                $data_excel[$i - 1]['rabu'] = $sheets['cells'][$i][3];
        }
        $this->db->insert_batch('table_one', $data_excel2);  

        // @unlink($data['full_path']);
        redirect('excel-import');

谢谢

0 个答案:

没有答案