殊珠子 php Excel文件导入 Spreadsheet_Excel_Reader
2017-01-12 14:33
393 查看
<?php class Excel2Db{ public $filePath = "../../../../excel_file/"; public function __construct($filePath) { $this->filePath = $filePath; $this->insertExcel(); } private function insertExcel(){ $file_name = $_FILES['excel']['name']; $tmp_name = $_FILES['excel']['tmp_name']; $file_size = $_FILES['excel']['size']; $file_error = $_FILES['excel']['error']; // 处理excel文件 $this->checkExcel($file_name,$file_size,$file_error); // 上传excel文件 $uploadfilename = $this->d_file_move($file_name,$tmp_name); if (isset($uploadfilename) && !empty($uploadfilename)) { if ( file_exists($uploadfilename) && is_readable($uploadfilename)) { // 读取上传的excel文件并导入数据库 $res_insert= $this->insertExceltoDatabase($uploadfilename); unlink($uploadfilename); //删除之前上传的文件 echo $res_insert; }else{ die("<script>alert('上传文件不可读,请上传可读文件');history.back(-1);</script>"); } } else { showMessage("文件上传失败!"); } } /** * 处理excel文件 */ private function checkExcel($file_name,$file_size,$file_error){ if ($file_name != '') { $fileExcel = substr(strrchr($file_name,'.'), 1); if ($fileExcel != 'xls') { die("<script>alert('文件格式不正确,只可上传.xls类型的文件');history.back(-1);</script>"); } if($file_size>512000){ die("<script>alert('文件过大,最大为500K');history.back(-1);</script>"); } if($file_error!=0){ die("<script>alert('未知错误,文件上传失败');history.back(-1);</script>"); } }else{ showMessage("Excel文件上传错误,请检查后重新上传!"); } } /** * 上传文件方法 */ private function d_file_move($file,$filetempname){ $filePath = $this->filePath;//上传文件的路径 if(!is_dir($filePath)) mkdir($filePath);//检查并创建文件夹 $time = date('YmdHis',time());//设置文件名,注意设置时区 $extend = strchr($file,'.');//获取文件后缀 $newname = $time.$extend;//设置上传后完整的文件名 $uploadfile = $filePath.$newname;//文件路径 if(file_exists($uploadfile)){ die("<script>alert('文件已存在,请重新上传');history.back(-1);</script>"); } $res = move_uploaded_file($filetempname,$uploadfile);//通过move_uploaded_file函数移动文件到指定目录 if($res) return $uploadfile;//如果成功返回当前文件路径 return false; } /** * Excel导入数据库 */ private function insertExceltoDatabase($uploadfilename){ $coupon_member_model = Model('coupon_member'); $data=new Spreadsheet_Excel_Reader(); $data->setOutputEncoding('utf-8'); $data->read($uploadfilename); // 注意上传的Excel要是能够正常读取编辑的才可以 $rownum=$data->sheets[0]['numRows']; $str=""; $success=0; $insert_coupon_data = array(); for ($i=2; $i <=$rownum ; $i++) { $coupon_code=trim($data->sheets[0]['cells'][$i][1]); $coupon_pwd=trim($data->sheets[0]['cells'][$i][2]); //验证填写信息是否正确 if (!isset($coupon_code) || empty($coupon_code)) { $str.="抵用券编码为空,第".$i."行\\n"; continue; } if (!isset($coupon_pwd) || empty($coupon_pwd)) { $str.="抵用券密码为空,第".$i."行\\n"; continue; } $coupon_data['coupon_code'] = $coupon_code; $coupon_data['coupon_pwd'] = $coupon_pwd; $insert_coupon_data[] = $coupon_data; $success++; } // 批量插入数据表 if ($success>0) { $res_insert = $coupon_member_model->addCouponMemberAll($insert_coupon_data); return "<script>alert('成功导入".$success."条记录,失败记录:\\n".$str."');history.back(-1);;</script>"; }else{ return false; } } }新手小白一个,希望大神指点!
相关文章推荐
- 如何从Excel文件中导入所有Sheet到DataTable中?
- PHP读取Excel 之 Spreadsheet_Excel_Reader和Writer
- [perl] Spreadsheet::WriteExcel 和 Spreadsheet::Read 对 excel 文件的读写
- c# Winform程序实现多sheet的Excel文件导入与导出
- php读取excel文件-reader.php excel操作类使用
- C# 用spreadsheet打开excel文件
- PHP读取Excel 之 Spreadsheet_Excel_Reader
- Spreadsheet_Excel_Reader类学习心得
- OWC11 SpreadsheetClass导出到Excel,文件路径的问题
- PHP读取Excel 之 Spreadsheet_Excel_Reader
- 将Dataset中的多个DataTable导入到一个Excel文件的多个Sheet中
- 使用phpexcelreader插件 结合mysql 与 导入Excel文件(.xls)
- java导入Excel包含多张sheet表的.xls .xslx .txt三种后缀格式的文件
- php读取excel文件-reader.php excel操作类使用
- PHP读取Excel 之 Spreadsheet_Excel_Reader
- Perl Spreadsheet::WriteExcel 模块自动生成excel 文件
- 使用owc的spreadsheet导出Excel文件时,格式丢失的解决方法
- [导入]ASP.NET 2.0中直接将Access数据库导入到Excel文件中
- 将文件夹下的所有EXCEL导入SQL数据库中,每一文件为一单独的表,表名为文件名
- [导入]ASP.NET 2.0中直接将Access数据库导入到Excel文件中