我想将excel文件导入mysql.i在db中创建一个表,该表的名称是statement.please指导我
myController的
function my_test()
{
$table = 'statement';
$filename ='expense.xls';
$pathToFile = './uploads/' . $filename;
// print_r($pathToFile);die;
$valuesSql="";
$this->load->library('Excel_Reader');
$data = new 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
}
}
我的观看页面是
<html>
<head>
<title>Upload Form</title>
</head>
<body>
<?php // echo $error;?>
<?php echo form_open_multipart('Upload_c/my_test');?>
<input type="file" name="file_name" size="20" />
<br /><br />
<input type="submit" name="up" value="upload" />
</form>
</body>
</html>
当我点击视图页面中的上传按钮时,它显示的错误如下
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 0
Filename: controllers/Upload_c.php
Line Number: 33
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 0
Filename: controllers/Upload_c.php
Line Number: 38
答案 0 :(得分:1)
尝试PHPEXCEL而不是EXCEL_READER ...
答案 1 :(得分:0)
请在此示例中尝试此操作您不需要任何库,它将在没有任何库的情况下工作 -
我的查看文件(index.php) -
<form class="form-horizontal well" action="<?php echo base_url(); ?>index.php/welcome/import" method="post" name="upload_excel" enctype="multipart/form-data">
<input type="file" name="file" id="file" class="input-large">
<button type="submit" id="submit" name="Import" class="btn btn-primary button-loading">Upload</button>
</form>
我的模型(welcome_model.php) -
<?php
class Welcome_model extends CI_Model
{
public function insertCSV($data)
{
$this->db->insert('subject', $data);
return $this->db->insert_id();
}
}
?>
我的控制器(welcome.php) -
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$this->load->model('welcome_model');
$this->load->view('index');
}
public function import()
{
if(isset($_POST["Import"]))
{
$filename=$_FILES["file"]["tmp_name"];
if($_FILES["file"]["size"] > 0)
{
$file = fopen($filename, "r");
while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE)
{
$data = array(
'SUBJ_CODE' => $emapData[1],
'SUBJ_DESCRIPTION' => $emapData[2],
'UNIT' => $emapData[3],
'PRE_REQUISITE' => $emapData[4],
'COURSE_ID' => $emapData[5],
'AY' => $emapData[6],
'SEMESTER' => $emapData[7],
);
$this->load->model('welcome_model');
$insertId = $this->welcome_model->insertCSV($data);
}
fclose($file);
redirect('welcome/index');
}
}
}
}
请尝试这个它肯定会工作..