使用带有电子表格的codeigniter\u Excel\u阅读器库在php中读取xls文件
我正在尝试读取excel文件(即xls)并将数据导入mysql数据库,我正在使用codeigniter 2.0.1框架 下面是生成查询的代码使用带有电子表格的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
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>";
}
}