惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - harry.guo

转:iphone/ipad网站开发技巧整理 转:iPhone Android Web开发(概要) 转:jquery弹出层背景变暗 - harry.guo - 博客园 转:c#播放音频文件 - harry.guo - 博客园 转载:Android模拟器的基本操作 安装android sdk 遇到几个问题 基础:JDK的概念、组成及JDK常用包(转) 基础:JDK与JRE(转) 基础:C#装箱拆箱的计算 转:对比MFC,Winform,WPF 正则在FireFox和IE下使用test的不同 - harry.guo - 博客园 格式化日期输出 - harry.guo - 博客园 知识:软件复杂度 转:如何让你的SQL运行得更快 白盒测试步骤 Ms时间处理收集 [摘]javascript的Prototype实现和OO开发- - java实现对文件的各种操作(转) - harry.guo - 博客园 实现table跳转到指定行,并改变所在行的样式!
转:Codeigniter调用PHPExcel例子
harry.guo · 2011-01-30 · via 博客园 - harry.guo

来源:http://hi.baidu.com/xuelongpaox/blog/item/43b40622625fa85c9822edac.html

1.把PHPExcel放到application\libraries下,并新建个tool.php用来调用

PHPExcel官方网站: http://www.codeplex.com/PHPExcel

<?php

class Tool{

/**导入Excel文件到MySql数据库
$file:Excel文件的名称;
$filetempname:Excel文件上传到服务器的临时文件名
$sql:传入的sql语句
**/
function UploadExcel($file,$filetempname,$strsql)
{
set_include_path(get_include_path().PATH_SEPARATOR .BASEPATH.'libraries/PHPExcel/PHPExcel');
  
require_once 'PHPExcel/PHPExcel.php';
require_once 'PHPExcel/PHPExcel/IOFactory.php';
require_once 'PHPExcel/PHPExcel/Reader\Excel5.php';

$tools_filePath = dirname(dirname(dirname(dirname(__FILE__))))."/UploadFiles/";
$tools_filePath = str_replace('\\','/',$tools_filePath);

//防止最大可使用的内存总量过少
if(intval(ini_get('memory_limit')) <= 20)
{
   ini_set('memory_limit','20M');
}

$uploadDir = $tools_filePath;

if (!is_dir($uploadDir))
{
   if (!mkdir($uploadDir, 0777,TRUE) || !chmod($uploadDir, 0777))
   {
    exit("创建上传目录失败");
   }
}
  
$filename = explode(".",$file);//把上传的文件名以“.”好为准做一个数组。
$date = date("YmdHis");
//$time=date("Y-m-d-H-i-s");//取当前上传的时间
//$filename[0]=$time;//取文件名t替换
//$name=implode(".",$filename); //上传后的文件名
//exit($filename[1]);
$filename_sever = $date.".".$filename[count($filename)-1];
$filename_sever = $uploadDir."/".$filename_sever;
$result=move_uploaded_file($filetempname,$filename_sever);//假如上传到当前目录下
  
    if($result) //如果上传文件成功,就执行导入excel操作
    {
   $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
   $objPHPExcel = $objReader->load($filename_sever);
   $sheet = $objPHPExcel->getSheet(0);
   $highestRow = $sheet->getHighestRow(); // 取得总行数
   $highestColumn = $sheet->getHighestColumn(); // 取得总列数
    
   $CountFlag =1;
   $everyTimes=200;
  
   if($highestRow >=$everyTimes)
   {
    $CountFlag=ceil($highestRow /$everyTimes);
   }

   for($m=1;$m<=$CountFlag;$m++)
   {
    $startdata =2;
    $endata=$everyTimes*($CountFlag-1) ;
    if($m > 1)$startdata=($m-1)*$everyTimes+1;
    if($m==$CountFlag )$endata =$highestRow;
   
    $sql=$strsql;
    $str = "";$strdata="";$msgstr="";  
   
    for($j=$startdata;$j<=$endata;$j++)
    {
     for($k='A';$k<=$highestColumn;$k++)
     {
      if($str != "")
      {
       $str .= ",'".iconv('utf-8','gbk',$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue())."'";//读取单元格
      }
      else
      {     
       $str .= "'".iconv('utf-8','gbk',$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue())."'";//读取单元格
      }
     
     }
     $str= "(".$str.")";  
     if($strdata !="")
      $strdata .=",".$str;
     else $strdata .=$str ;  
      $str="";
     
    }
   
    $sql .= $strdata;
    
    if(!mysql_query($sql))
    {
     continue;
    }  
   }
  
   if(!is_dir($filename_sever))
   {
    unlink($filename_sever); ////删除文件
   } else
   {
    deldir($filename_sever);   ////删除文件
   }
   $msg = true;
    }
    else
    {
   $msg = false;
    }

return $msg;
}

}

?>

2.在views的sellNember.php页面,注意:form必须是 form_open_multipart 使用 form_open无法上传

    <?=form_open_multipart('sellNemberC/upload')?>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
     <tr>
      <td>&nbsp;
      
      </td>
     </tr>
     <tr>
      <td align="left">
       上传号码资源:
       <input type="hidden" name="site_url" value="<?=site_url()?>">
       <input type="file" name="inputExcel" size="20" />
       <input type="submit" name="sub_up" value="提 交" />
      </td>
     </tr>
    </table>
    <?=form_close()?>

3.在controllers下的sellNemberC.php进行调用

/*
*导入excel文件
*/
function upload()
{

$this->load->library('tool');
   $site_url = $_POST['site_url'];
   $name = iconv("UTF-8","gbk",$_FILES['inputExcel']['name']);
   $tempName = iconv("UTF-8","gbk",$_FILES['inputExcel']['tmp_name']);
    
   $sql = "insert into tcombinedsetnumber (number,type,price,remark,commision) values ";
   $msg = $this->tool->UploadExcels($name,$tempName,$sql);
  
   if($msg === true)
   {
    show_error("导入成功<a href='".$site_url."/Cextensions/sellNemberC'>返回</a>");
   }else
   {
    show_error("导入失败<a href='".$site_url."/Cextensions/sellNemberC'>返回</a>");
   }
}