Table of Contents
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例,thinkphpphpexcel
导入Excel表:
thinkphp中使用phpexcel导入excel表格,出现PHPExcel_IOFactory没有发现
thinkphp使用phpexcel通过excel上传数据到数据库报错:
Home php教程 php手册 ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例,thinkphpphpexcel

ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例,thinkphpphpexcel

Jun 13, 2016 am 09:29 AM
excel phpexcel thinkphp

ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例,thinkphpphpexcel

本文所述实例是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错造成的,如果有问题大家务必要对路劲是否引用正确进行测试。

具体操作步骤如下:

(一)导入Excel

第一,在前台html页面进行上传文件:如:

<form method="post" action="php文件" enctype="multipart/form-data">
 <h3 id="导入Excel表">导入Excel表:</h3><input type="file" name="file_stu" />

  <input type="submit" value="导入" />
</form>

Copy after login

第二,在对应的php文件进行文件的处理

 if (! empty ( $_FILES ['file_stu'] ['name'] )) 
 {
  $tmp_file = $_FILES ['file_stu'] ['tmp_name'];
  $file_types = explode ( ".", $_FILES ['file_stu'] ['name'] );
  $file_type = $file_types [count ( $file_types ) - 1];
   /*判别是不是.xls文件,判别是不是excel文件*/
   if (strtolower ( $file_type ) != "xls")       
  {
     $this->error ( '不是Excel文件,重新上传' );
   }
  /*设置上传路径*/
   $savePath = SITE_PATH . '/public/upfile/Excel/';
  /*以时间来命名上传的文件*/
   $str = date ( 'Ymdhis' ); 
   $file_name = $str . "." . $file_type;
   /*是否上传成功*/
   if (! copy ( $tmp_file, $savePath . $file_name )) 
   {
     $this->error ( '上传失败' );
   }
  /*
    *对上传的Excel数据进行处理生成编程数据,这个函数会在下面第三步的ExcelToArray类中

   注意:这里调用执行了第三步类里面的read函数,把Excel转化为数组并返回给$res,再进行数据库写入
  */
 $res = Service ( 'ExcelToArray' )->read ( $savePath . $file_name );
  /*
    重要代码 解决Thinkphp M、D方法不能调用的问题  
    如果在thinkphp中遇到M 、D方法失效时就加入下面一句代码
  */
  //spl_autoload_register ( array ('Think', 'autoload' ) );
  /*对生成的数组进行数据库的写入*/
  foreach ( $res as $k => $v ) 
  {
    if ($k != 0) 
   {
      $data ['uid'] = $v [0];
      $data ['password'] = sha1 ( '111111' );
      $data ['email'] = $v [1];
      $data ['uname'] = $v [3];
     $data ['institute'] = $v [4];
     $result = M ( 'user' )->add ( $data );
     if (! $result) 
     {
       $this->error ( '导入数据库失败' );
     }
   }
  }
}

Copy after login

第三:ExcelToArrary类,用来引用phpExcel并处理Excel数据的
此处注意:ExcelToArrary类建在根目录下的 addons /services/ExcelToArrary.class.php中

class ExcelToArrary extends Service{
 public function __construct() {
   /*导入phpExcel核心类  注意 :你的路径跟我不一样就不能直接复制*/
   include_once('./Excel/PHPExcel.php');
 }
/**
* 读取excel $filename 路径文件名 $encode 返回数据的编码 默认为utf8
*以下基本都不要修改
*/ 
public function read($filename,$encode='utf-8'){
     $objReader = PHPExcel_IOFactory::createReader('Excel5'); 
     $objReader->setReadDataOnly(true); 
     $objPHPExcel = $objReader->load($filename); 
     $objWorksheet = $objPHPExcel->getActiveSheet(); 
    $highestRow = $objWorksheet->getHighestRow(); 
    $highestColumn = $objWorksheet->getHighestColumn(); 
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
     $excelData = array(); 
    for ($row = 1; $row <= $highestRow; $row++) { 
     for ($col = 0; $col < $highestColumnIndex; $col++) { 
         $excelData[$row][] =(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
      } 
     } 
    return $excelData; 
  }   
 }
Copy after login

第四,以上就是导入的全部内容,phpExcel包附在最后。

(二)Excel的导出(相对于导入简单多了)

第一,先查出数据库里面要生成Excel的数据,如:

$data= M('User')->findAll();  //查出数据
$name='Excelfile';  //生成的Excel文件文件名
$res=service('ExcelToArrary')->push($data,$name);

Copy after login

第二,ExcelToArrary类,用来引用phpExcel并处理数据的

class ExcelToArrary extends Service{
public function __construct() {
   /*导入phpExcel核心类  注意 :你的路径跟我不一样就不能直接复制*/
    include_once('./Excel/PHPExcel.php');
}
/* 导出excel函数*/
public function push($data,$name='Excel'){
 error_reporting(E_ALL);
 date_default_timezone_set('Europe/London');
 $objPHPExcel = new PHPExcel();

/*以下是一些设置 ,什么作者 标题啊之类的*/
 $objPHPExcel->getProperties()->setCreator("转弯的阳光")
     ->setLastModifiedBy("转弯的阳光")
     ->setTitle("数据EXCEL导出")
     ->setSubject("数据EXCEL导出")
     ->setDescription("备份数据")
     ->setKeywords("excel")
    ->setCategory("result file");
 /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/
foreach($data as $k => $v){
   $num=$k+1;
   $objPHPExcel->setActiveSheetIndex(0)
  //Excel的第A列,uid是你查出数组的键值,下面以此类推
  ->setCellValue('A'.$num, $v['uid'])  
  ->setCellValue('B'.$num, $v['email'])
  ->setCellValue('C'.$num, $v['password'])
  }
  $objPHPExcel->getActiveSheet()->setTitle('User');
  $objPHPExcel->setActiveSheetIndex(0);
   header('Content-Type: application/vnd.ms-excel');
   header('Content-Disposition: attachment;filename="'.$name.'.xls"');
   header('Cache-Control: max-age=0');
   $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
   $objWriter->save('php://output');
   exit;
}

Copy after login

第三,以上就是导出的全部内容,phpExcel本站下载地址http://www.bkjia.com/codes/194070.html

thinkphp中使用phpexcel导入excel表格,出现PHPExcel_IOFactory没有发现

提示不是说了么,没找到那就是路径不对,在检查下吧
 

thinkphp使用phpexcel通过excel上传数据到数据库报错:

可能是你excel格式不规范
我用的也是tp的框架,操作excel时,没有问题的
 

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to filter more than 3 keywords at the same time in excel How to filter more than 3 keywords at the same time in excel Mar 21, 2024 pm 03:16 PM

Excel is often used to process data in daily office work, and it is often necessary to use the &quot;filter&quot; function. When we choose to perform &quot;filtering&quot; in Excel, we can only filter up to two conditions for the same column. So, do you know how to filter more than 3 keywords at the same time in Excel? Next, let me demonstrate it to you. The first method is to gradually add the conditions to the filter. If you want to filter out three qualifying details at the same time, you first need to filter out one of them step by step. At the beginning, you can first filter out employees with the surname &quot;Wang&quot; based on the conditions. Then click [OK], and then check [Add current selection to filter] in the filter results. The steps are as follows. Similarly, perform filtering separately again

What should I do if the frame line disappears when printing in Excel? What should I do if the frame line disappears when printing in Excel? Mar 21, 2024 am 09:50 AM

If when opening a file that needs to be printed, we will find that the table frame line has disappeared for some reason in the print preview. When encountering such a situation, we must deal with it in time. If this also appears in your print file If you have questions like this, then join the editor to learn the following course: What should I do if the frame line disappears when printing a table in Excel? 1. Open a file that needs to be printed, as shown in the figure below. 2. Select all required content areas, as shown in the figure below. 3. Right-click the mouse and select the &quot;Format Cells&quot; option, as shown in the figure below. 4. Click the “Border” option at the top of the window, as shown in the figure below. 5. Select the thin solid line pattern in the line style on the left, as shown in the figure below. 6. Select &quot;Outer Border&quot;

How to change excel table compatibility mode to normal mode How to change excel table compatibility mode to normal mode Mar 20, 2024 pm 08:01 PM

In our daily work and study, we copy Excel files from others, open them to add content or re-edit them, and then save them. Sometimes a compatibility check dialog box will appear, which is very troublesome. I don’t know Excel software. , can it be changed to normal mode? So below, the editor will bring you detailed steps to solve this problem, let us learn together. Finally, be sure to remember to save it. 1. Open a worksheet and display an additional compatibility mode in the name of the worksheet, as shown in the figure. 2. In this worksheet, after modifying the content and saving it, the dialog box of the compatibility checker always pops up. It is very troublesome to see this page, as shown in the figure. 3. Click the Office button, click Save As, and then

How to set superscript in excel How to set superscript in excel Mar 20, 2024 pm 04:30 PM

When processing data, sometimes we encounter data that contains various symbols such as multiples, temperatures, etc. Do you know how to set superscripts in Excel? When we use Excel to process data, if we do not set superscripts, it will make it more troublesome to enter a lot of our data. Today, the editor will bring you the specific setting method of excel superscript. 1. First, let us open the Microsoft Office Excel document on the desktop and select the text that needs to be modified into superscript, as shown in the figure. 2. Then, right-click and select the &quot;Format Cells&quot; option in the menu that appears after clicking, as shown in the figure. 3. Next, in the “Format Cells” dialog box that pops up automatically

How to use the iif function in excel How to use the iif function in excel Mar 20, 2024 pm 06:10 PM

Most users use Excel to process table data. In fact, Excel also has a VBA program. Apart from experts, not many users have used this function. The iif function is often used when writing in VBA. It is actually the same as if The functions of the functions are similar. Let me introduce to you the usage of the iif function. There are iif functions in SQL statements and VBA code in Excel. The iif function is similar to the IF function in the excel worksheet. It performs true and false value judgment and returns different results based on the logically calculated true and false values. IF function usage is (condition, yes, no). IF statement and IIF function in VBA. The former IF statement is a control statement that can execute different statements according to conditions. The latter

Where to set excel reading mode Where to set excel reading mode Mar 21, 2024 am 08:40 AM

In the study of software, we are accustomed to using excel, not only because it is convenient, but also because it can meet a variety of formats needed in actual work, and excel is very flexible to use, and there is a mode that is convenient for reading. Today I brought For everyone: where to set the excel reading mode. 1. Turn on the computer, then open the Excel application and find the target data. 2. There are two ways to set the reading mode in Excel. The first one: In Excel, there are a large number of convenient processing methods distributed in the Excel layout. In the lower right corner of Excel, there is a shortcut to set the reading mode. Find the pattern of the cross mark and click it to enter the reading mode. There is a small three-dimensional mark on the right side of the cross mark.

How to insert excel icons into PPT slides How to insert excel icons into PPT slides Mar 26, 2024 pm 05:40 PM

1. Open the PPT and turn the page to the page where you need to insert the excel icon. Click the Insert tab. 2. Click [Object]. 3. The following dialog box will pop up. 4. Click [Create from file] and click [Browse]. 5. Select the excel table to be inserted. 6. Click OK and the following page will pop up. 7. Check [Show as icon]. 8. Click OK.

How to read excel data in html How to read excel data in html Mar 27, 2024 pm 05:11 PM

How to read excel data in html: 1. Use JavaScript library to read Excel data; 2. Use server-side programming language to read Excel data.

See all articles