Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用带有电子表格的codeigniter\u Excel\u阅读器库在php中读取xls文件_Php_Codeigniter_Programming Languages - Fatal编程技术网

使用带有电子表格的codeigniter\u Excel\u阅读器库在php中读取xls文件

使用带有电子表格的codeigniter\u Excel\u阅读器库在php中读取xls文件,php,codeigniter,programming-languages,Php,Codeigniter,Programming Languages,我正在尝试读取excel文件(即xls)并将数据导入mysql数据库,我正在使用codeigniter 2.0.1框架 下面是生成查询的代码 public function read_file($table = 'organization', $filename = 'test.xls') { $pathToFile = './uploads/' . $filename; $this->load->library('Spreadsheet_Excel_Rea

我正在尝试读取excel文件(即xls)并将数据导入mysql数据库,我正在使用codeigniter 2.0.1框架

下面是生成查询的代码

    public function read_file($table = 'organization', $filename = 'test.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++) {
        for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
            $sql .= "\"" . $data->sheets[0]['cells'][$i][$j] . "\", ";
        }
        echo  rtrim($sql, ", ")." ) <br>";
    }

}
对不起,我不能发布图片,因为我是新手


Thanx提前..干杯

我不能测试它,但是…:

    public function read_file($table = 'organization', $filename = 'test.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>";
    }
}
public函数读取文件($table='organization',$filename='test.xls')){
$pathToFile='./uploads/'.$filename;
$this->load->library('Spreadsheet\u Excel\u Reader');
$data=新电子表格\u Excel\u阅读器($pathToFile);
$sql=“插入到$table(”;
对于($index=1;$index sheets[0]['numCols'];$index++){
$sql.=strtolower($data->sheets[0]['cells'][1][$index])。“,”;
}
$sql=rtrim($sql,“,”)值(“;
对于($i=2;$i工作表[0]['numRows'];$i++){
$valuesSQL='';
对于($j=1;$j工作表[0]['numCols'];$j++){
$valuesSql.=“\”.$data->sheets[0]['cells'][$i][$j]。“\”,“;
}
echo$sql.rtrim($valuesSql,“,”)
”; } }
thanx非常感谢您的帮助。$valuesSQL的值过于夸张,因为我们给同一个变量分配了不同的值。我认为将它们放入数组将是最佳做法。。你能解释一下为什么这些代码一开始就失败了吗?.thanx你帮了我很多忙..首先在你的$sql中你一直插入。。。值(然后将所有行和列连接到此字符串。相反,我对每一行使用初始$sql并将其与该行的单元格连接)。
    public function read_file($table = 'organization', $filename = 'test.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>";
    }
}