首页 > 编程技术 > php

PHP如何读取Excel类文件的图文解析

发布时间:2017-7-6 23:49

本篇文章主要介绍了PHP读取Excel类文件的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧

想要使用PHP读取Excel文件必然要用到PHPExcel开源类库,网上资源应该挺多的。但是每一种的操作必然都是不同的,可原理应该都是大同小异。

这个文件夹里包含的就是PHPExcel类文件

,在外面还有一个入口PHP文件

处理机制:1.读取Excel文件

           2.获取最大行号和最大列号

              3.通过行数循环里面嵌套列数循环来用特殊符号拼接每个小表格里面的数据得到一个字符串

           4.然后使用explode拆分函数将字符串拆分后就得到了一个二维数组(即表格里面的数据)。

代码示例

 

 代码如下复制代码

$path="/wamp/www/xiong/hadf";

    if(is_dir($path)){

      echo"存在";

    }else{

      mkdir($path, 0777, true);

      echo"chuangji";

    }

    require_once"./PHPExcel.php";

    $filePath="./1233.xlsx";

    $PHPReader=newPHPExcel_Reader_Excel2007();

          if(!$PHPReader->canRead($filePath)) {

            $PHPReader=newPHPExcel_Reader_Excel5();

            if(!$PHPReader->canRead($filePath)) {

              echo'no Excel'

              exit;

            }

          }

    $PHPExcel=$PHPReader->load($filePath);

          /**读取excel文件中的第一个工作表*/

          $currentSheet=$PHPExcel->getSheet(0);

          /**取得最大的列号*/

          $allColumn=$currentSheet->getHighestColumn();

          // echo $allColumn;exit;

          /**取得一共有多少行*/

          $allRow=$currentSheet->getHighestRow();

          /**从第二行开始输出,因为excel表中第一行为列名*/

          $val=''

          for($currentRow= 1;$currentRow<=$allRow;$currentRow++) {

          /**从第A列开始输出*/

            for($currentColumn='A'$currentColumn<=$allColumn;$currentColumn++) {

              $val.=$currentSheet->getCellByColumnAndRow(ord($currentColumn)  - 65,$currentRow);//->getValue();/**ord()将字符转为十进制数*/

              $val.="&%|%&";

              /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将GBK编码转为UTF-8编码输出*/

              //$val .= iconv('GBK','UTF-8', $val);

            }

            $val.="\n";

          }$member_info_arr=explode("\n",$val);

          unset($member_info_arr[count($member_info_arr) - 1]);

          $present_time=date("Y-m-d H:i:s");

          if(count($member_info_arr) <= 0) {

            sys_msg_json(0,"会员信息文件中无数据,请添加");

          }

          unset($member_info_arr[0]);

          // var_dump($member_info_arr);exit;

          foreach($member_info_arras$key=>$val) {

            $arr[$key] =explode("&%|%&",$val);

          }

          // var_dump($arr);exit;

          foreach($arras$key=>$val) {

            unset($arr[$key][2]);

          }

          var_dump($arr);

 

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本网站!

这篇文章主要为大家详细介绍了php使用curl实现ftp文件下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了php实现ftp文件下载功能,供大家参考,具体内容如下

不知道为什么用正常的ftp_get函数下载文件速度特别慢,但是用ftp的客户端下载很快,所以换了curl的下载方式,速度正常

 

 代码如下复制代码

functionfile_upload($ftpIp,$ftpUser,$ftpPwd,$path,$fileSavePath){

  $curlobj= curl_init();//初始化

  //传入ftp的目标文件,如'ftp://192.168.3.1/test/1.jpg'

  curl_setopt($curlobj,CURLOPT_URL,"ftp://".$ftpIp."/".$path);

  curl_setopt($curlobj,CURLOPT_HEADER,0);//不输出header

  curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,0);

  //time out after 300s

  curl_setopt($curlobj,CURLOPT_TIMEOUT,2000);//超时时间

  //通过这个函数设置ftp的用户名和密码,没设置就不需要!

  curl_setopt($curlobj,CURLOPT_USERPWD,$ftpUser.':'.$ftpPwd);

 

  $outfile=fopen($fileSavePath,'w+');//保存到本地文件的文件名

  curl_setopt($curlobj,CURLOPT_FILE,$outfile);

 

  $rtn= curl_exec($curlobj);

  if(curl_errno($curlobj)){

    writeLog('Curl error: '. curl_error($curlobj));

  }

  fclose($outfile);

  curl_close($curlobj);

   if($rtn== 1){

    returntrue;

   }else{

    unlink($fileSavePath);//如果下载失败,但是本地open了这个文件,所以要删除

    returnfalse;

   }

 

}

 

测试下载小文件是正常的,但是如果网速很慢,下载大文件时候,会报一个ftp timeout的错误,目前还在不知道是哪里配置问题,还是什么问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本网站。

本篇文章主要介绍了利用PHPExcel读取Excel的数据和导出数据到Excel的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧

PHPExcel是一个PHP类库,用来帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。也是我们日常开发中,经常会遇到的使用场景。比如有个客户信息表,要批量导出发给同事,我们就可以用PHPExcel来快速实现。同样,如果我们要利用短信群发接口去群发信息,PHPExcel可以快速导入客户信息,避免人工录入信息的麻烦。

PHPExcel使用教程:

首先下载PHPExcel

到https://github.com/PHPOffice/PHPExcel下载PHPExcel,如果不懂得使用git,可以到这https://codeload.github.com/PHPOffice/PHPExcel/zip/1.8下载压缩包,懂得的自行用git下载。

下载好文件,解压可以得到如下文件:

PHPExcel

好了,现在我们就可以用PHPExcel愉快的读取和制作表格了!

PHPExcel DEMO1:利用PHPExcel读取excel信息:

我们在根目录创建一个名为read.php的文件来读取文档,创建一个test.xlsx的文件,里面写的信息如下:

然后在read.php写以下代码:

 

 代码如下复制代码

<?php

include‘./Classes/PHPExcel/IOFactory.php'

 

$inputFileName= ‘./test.xls'

date_default_timezone_set(‘PRC');

// 读取excel文件

try{

$inputFileType= PHPExcel_IOFactory::identify($inputFileName);

$objReader= PHPExcel_IOFactory::createReader($inputFileType);

$objPHPExcel=$objReader->load($inputFileName);

}catch(Exception$e) {

die(‘加载文件发生错误:”‘.pathinfo($inputFileName,PATHINFO_BASENAME).'”: ‘.$e->getMessage());

}

 

// 确定要读取的sheet,什么是sheet,看excel的右下角,真的不懂去百度吧

$sheet=$objPHPExcel->getSheet(0);

$highestRow=$sheet->getHighestRow();

$highestColumn=$sheet->getHighestColumn();

 

// 获取一行的数据

for($row= 1;$row<=$highestRow;$row++){

// Read a row of data into an array

$rowData=$sheet->rangeToArray(‘A' . $row . ‘:'.$highestColumn.$row, NULL, TRUE, FALSE);

//这里得到的rowData都是一行的数据,得到数据后自行处理,我们这里只打出来看看效果

var_dump($rowData);

echo“
”;

}

 

得到的数据:

PHPexcel读取文件

PHPExcel DEMO2:利用PHPExcel导出信息到excel:

 

 代码如下复制代码

<?php

 

/** Error reporting */

error_reporting(E_ALL);

ini_set('display_errors', TRUE);

ini_set('display_startup_errors', TRUE);

date_default_timezone_set('PRC');

 

/** 引入PHPExcel */

require_oncedirname(__FILE__) .'./Classes/PHPExcel.php'

 

// 创建Excel文件对象

$objPHPExcel=newPHPExcel();

// 设置文档信息,这个文档信息windows系统可以右键文件属性查看

$objPHPExcel->getProperties()->setCreator("作者简庆旺")

 ->setLastModifiedBy("最后更改者")

 ->setTitle("文档标题")

 ->setSubject("文档主题")

 ->setDescription("文档的描述信息")

 ->setKeywords("设置文档关键词")

 ->setCategory("设置文档的分类");

 

//根据excel坐标,添加数据

$objPHPExcel->setActiveSheetIndex(0)

 ->setCellValue('A1','你好')

 ->setCellValue('B2','世界')

 ->setCellValue('C1','你好')

 ->setCellValue('D2','世界');

 

// 混杂各种符号, 编码为UTF-8

$objPHPExcel->setActiveSheetIndex(0)

 ->setCellValue('A4','Miscellaneous glyphs')

 ->setCellValue('A5','éàèùâêîôûëïüÿäöüç');

 

$objPHPExcel->getActiveSheet()->setCellValue('A8',"你好世界");

$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);

$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);

 

$value="-ValueA\n-Value B\n-Value C";

$objPHPExcel->getActiveSheet()->setCellValue('A10',$value);

$objPHPExcel->getActiveSheet()->getRowDimension(10)->setRowHeight(-1);

$objPHPExcel->getActiveSheet()->getStyle('A10')->getAlignment()->setWrapText(true);

$objPHPExcel->getActiveSheet()->getStyle('A10')->setQuotePrefix(true);

 

// 重命名工作sheet

$objPHPExcel->getActiveSheet()->setTitle('第一个sheet');

 

// 设置第一个sheet为工作的sheet

$objPHPExcel->setActiveSheetIndex(0);

 

// 保存Excel 2007格式文件,保存路径为当前路径,名字为export.xlsx

$objWriter= PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');

$objWriter->save('export.xlsx');

// 保存Excel 95格式文件,,保存路径为当前路径,

$objWriter= PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');

$objWriter->save('export.xls');

 

好了,执行后我们可以得到export.xls和export.xlsx。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本网站!

这篇文章主要为大家详细介绍了使用WAMP搭建PHP本地开发环境的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

写在前面的话

PHP是服务器脚本语言,所以需要在服务器上才能运行。作为新手,搭建服务器可能需要捣腾很久,有可能还搞不定。所以在入门阶段,为了把更多时间用在熟悉编程语言上,使用集成环境是最好也是最方便的选择。而本文就来介绍如何在windows平台搭建PHP开发环境。

安装集成环境

1、下载集成环境包WampServer官网

本人下载的是Wampserver 3.0.6 64 bit ,下载完成之后双击安装即可。

wamp 3.0.6 安装的软件分别为:

Apache 2.4.23
PHP 5.6.25/7.0.10
MySQL 5.7.14
PhpMyAdmin 4.6.4
Adminer 4.2.5
PhpSysInfo 3.2.5

* apache 2.4及以上版本与2.4以下版本的配置会有些不同
* wamp会同时安装PHP5和PHP7,安装完成之后可以进行切换使用

2、安装过程出现错误

若安装过程中出现提示缺少 msvcr110.dll 等文件,请先下载vcredist_x64.exe安装wamp所需环境。

服务器配置

1、项目路径

安装好wamp后,在安装路径下有个www文件夹,该文件夹用于存放你的项目文件,在这个目录下的文件才会被服务器识别和执行。

例如:我安装wamp时选中的目录为

D:\wamp64

则安装后的存放项目文件目录为

D:\wamp64\www

当然,如果不想使用默认的www文件夹,也可以修改apache配置,指定目录让服务器解析。

在安装目录下找到apache的配置文件httpd.conf

安装目录\bin\apache\apache2.4.23\conf\httpd.conf

使用记事本或者其他编辑器打开文件,找到

 

 代码如下复制代码

DocumentRoot "${INSTALL_DIR}/www"

...

 

把${INSTALL_DIR}/www修改为需要指定的目录

然后,同样在该目录中找到httpd-vhosts.conf文件

 

 代码如下复制代码

extra\httpd-vhosts.conf

 

#打开文件↓

 

  ServerName localhost

  DocumentRoot D:/wamp64/www

  

  ...

  

 

修改D:/wamp64/www为需要指定的目录即可。这样以后服务器就会解析这个目录下的文件了。
*修改配置之后要记得重启服务器

2、测试

新建一个项目测试服务器是否可用。

在www文件夹下新建一个test文件夹,文件夹中新建一个test.php,php文件中写上一些输出语句。例如程序员入门必写的一句话:

echo 'Hello World!'

之后打开浏览器,在地址栏输入

localhost/test/test.php

如果你的浏览器有显示Hello World!字样,就说明你的服务器可以使用了。

3、配置虚拟主机

不喜欢以localhost/项目文件名/xxx.php/…这种方式进行访问?那可以配置虚拟主机,配置后可以通过类似www.test.com(可自定义)这种形式访问。

首先找到httpd-vhosts.conf文件并打开

安装目录\bin\apache\apache2.4.23\conf\extra\httpd-vhosts.conf

在文件末尾添加

 

 代码如下复制代码

  #设置主机名(可自己设置)

  ServerName www.test.com

  #设置主机别名,即用该别名也可以访问(前提是域名解析正确)

  ServerAlias test.com

  #设置该站点根目录

  DocumentRoot "D:\wamp64\www\test"

  #设置文件夹访问控制,其路径要和上一行的DocumentRoot一样,

  

    #用于显示设定“可显示文件列表”(当无可显示网页的时候)

    Options Indexes

    #启用文件夹访问控制的文件.htaccess设置

    AllowOverride All

    #请求控制

    Require all granted

    #默认打开的页面设置

    DirectoryIndex index.php index.html

  

 

然后,找到hosts文件,win10的hosts文件路径为:

 

 代码如下复制代码

C:\Windows\System32\drivers\etc

#每个系统都不一样,可以去问问百度

 

在文件末尾处添加127.0.0.1www.test.com(注意中间的空格不要丢),保存。
*如果保存提示另存为的话,可以先另存为,然后修改另存为的文件名为hosts,覆盖掉原来的hosts文件

 

 代码如下复制代码

...

# Additionally, comments (such as these) may be inserted on individual

# lines or following the machine name denoted by a'#'symbol.

#

# For example:

#

#  102.54.94.97  rhino.acme.com     # source server

#   38.25.63.10  x.acme.com       # x client host

 

# localhost name resolution is handled within DNS itself.

# 127.0.0.1   localhost

#  ::1      localhost

 

127.0.0.1www.test.com

 

修改hosts的目的是为了在浏览器访问时,系统不会把域名(www.test.com)提交到DNS服务器,而是直接根据hosts文件找到IP地址(此时是本地),提交解析。这样我们本地的服务器就可以解析这个域名了。

4、局域网远程访问

如果需要在局域网中能通过链接访问站点(例如开发web app时使用手机测试),那么就需要开启服务器远程访问权限了。

打开apache配置文件httpd.conf

安装目录\bin\apache\apache2.4.23\conf\httpd.conf

修改AllowOverride和Require配置为如下

 

 代码如下复制代码

DocumentRoot "${INSTALL_DIR}/www"

  ...

  AllowOverride all

  Require all granted

  ...

 

同时需要修改httpd-vhosts.conf文件,修改相同的配置

 

 代码如下复制代码

  ServerName localhost

  DocumentRoot D:/wamp64/www

  

    ...

    AllowOverride All

    Require all granted

  

 

若只需要访问其中某一个站点,则首先需要给这个站点配置虚拟主机,然后在该虚拟主机的配置中修改AllowOverride和Require

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本网站。

标签:[!--infotagslink--]

您可能感兴趣的文章: