1

Excel シートの単一の列をデータベース テーブル名 admin_record にインポートしたいのですが、Excel シートは 1 つの列のみで構成され、列の名前はバーコードで、行は多数あります。

データベースに保存したいテーブル名はadmin_recordで、2つのフィールドのみで構成されています

  1. id (主キー)
  2. bar_code.

私が完全に理解できないこのコードだけを見つけてください

public function read_file($table = 'admin_record', $filename = 'example.xls') {

    $pathToFile = 'uploads/' . $filename;
    $this->load->library('Spreadsheet_Excel_Reader');
    $data = new Spreadsheet_Excel_Reader($pathToFile);
    $sql = "INSERT INTO $table (";
    for($index = 1;$index <= $data->sheets[0]['numCols']; $index++){
    $sql.= strtolower($data->sheets[0]['cells'][1][$index]) . ", ";
    }

    $sql = rtrim($sql, ", ")." ) VALUES ( ";
    for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {
        $valuesSQL = '';
    for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
        $valuesSql .= "\"" . $data->sheets[0]['cells'][$i][$j] . "\", ";
    }
    echo $sql . rtrim($valuesSql, ", ")." ) <br>";
    }
}
4

1 に答える 1

1

ライブラリ ファイルが間違っています。次のリンクを使用して Spreadsheet_Excel_Reader ライブラリをダウンロードしてください

public function my_test($table = 'admin_record', $filename = 'resources/uploads/c.xls')
    {

           $pathToFile = $filename;
           $valuesSql="";
            $this->load->library('Spreadsheet_Excel_Reader');
            $data = new Spreadsheet_Excel_Reader($pathToFile);
            $sql = "INSERT INTO $table (";
            for($index = 1;$index <= $data->sheets[0]['numCols']; $index++){
            $sql.= strtolower($data->sheets[0]['cells'][1][$index]) . ", ";
            }

            $sql = rtrim($sql, ", ")." ) VALUES ( ";
            for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {
            $valuesSQL = '';
            for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
            $valuesSql .= "\"" . $data->sheets[0]['cells'][$i][$j] . "\", ";
            }
            echo $sql . rtrim($valuesSql, ", ")." ) <br>";
            }                                           // add this line


    }
于 2015-02-10T12:11:43.680 に答える