Как загрузить данные Excel в базу данных MySQL, используя codeigniter? - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть приложение codeigniter, теперь мне нужно загрузить Excel, используя codigniter. Как это сделать. Я следую некоторым онлайн-учебникам, но они еще не завершены. Специально нет какой библиотеки они используют.

if(isset($_POST['Submit']))

{ $ mimes = array ('application / vnd.ms-excel', 'text / xls', 'text / xlsx', 'application / vnd.oasis.opendocument.spreadsheet', 'application / vnd.openxmlformats-officedocument.spreadsheetml. простынь'); если (in_array ($ _ FILES [ "Файл"] [ "типа"], $ мимы)) { $ uploadFilePath = 'uploads /'. basename ($ _ FILES ['file'] ['name']);

   $filename = pathinfo($uploadFilePath);

   $f = array("name"=>$filename['filename']);

   foreach ($f as $k)
   {
     $policy = $k;
   }

   move_uploaded_file($_FILES['file']['tmp_name'], $uploadFilePath);
   $Reader = new SpreadsheetReader($uploadFilePath);
   $totalSheet = count($Reader->sheets());
    //echo "You have total ".$totalSheet." sheets".

    /* For Loop for all sheets */
    for($i=0;$i<$totalSheet;$i++)
    {
        $Reader->ChangeSheet($i);
        foreach ($Reader as $Row)
        {
            $treeno ++;

            $policyno = isset($Row[0]) ? $Row[0] : '';
            $act_treeno = isset($Row[1]) ? $Row[1] : '';
            $dbh = isset($Row[2]) ? $Row[2] : '';
            $height = isset($Row[3]) ? $Row[3] : '';

            $pno = substr($policyno, -6);
            $treeno = $pno.'_'.$act_treeno.'_T';

           $query = "insert into tbl_trees(policyno,actual_treeno,dbh,height,treeno) values('".$policyno."','".$act_treeno."','".$dbh."','".$height."','".$treeno."')";
           echo '</br>';
           $mysqli->query($query);

это работа, но у меня нет идеи использовать этот метод в codeigniter.

1 Ответ

0 голосов
/ 06 сентября 2018

Сначала подумайте, что вам нужно загрузить этот файл, затем попробуйте открыть и подготовить данные для вставки -

$fileName = $_FILES['file']['name'];
    $uploadData = array();
    if (!empty($fileName)) {
        $config['upload_path'] = './your location/';
        $config['allowed_types'] = 'txt|csv|xls|xlsx';
        $config['max_size'] = 2048;
        $config['remove_spaces'] = TRUE;
        $config['encrypt_name'] = TRUE;
        $this->load->library('upload', $config);
        $this->upload->initialize($config);

        if (!$this->upload->do_upload('file')) {
            json_error("File Upload Error", $this->upload->display_errors(), 400);
        } else {
            $uploadData = array('upload_data' => $this->upload->data());
        }
    }//if

подготовить данные для вставки -

if (!empty($uploadData)) {
        $fileName = $uploadData['upload_data']['file_name'];
        $data = array(); //empty array;
        $fileInfo = fopen(base_url() . 'your file location/' . $fileName, "r");

        $i = 0;
        while (!feof($fileInfo)) {
            $colInfo = fgets($fileInfo); //fgets means read file in line by line.

            //prefer data to save
            $data[$i]['your_column'] = $colInfo;
            $i++;

        }//while
        fclose($fileInfo);
    }

вставить данные партии -

$this->db->insert_batch('dbtable', $data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...