需要用到PHPExcel这个类

附上代码

  1. //phpExcel读取excel内容
  2. header("Content-Type:textml;charset=utf-8");
  3. //引用PHPExcel.php
  4. require_once '../js/PHPExcel.php';
  5. //文件路径
  6. $filePath = "03711.xlsx";
  7. //建立readerExcel对象
  8. $PHPReader = new PHPExcel_Reader_Excel2007();
  9. /**默认用excel2007读取excel,若格式不对,则用之前的版本进行读取*/
  10. if(!$PHPReader->canRead($filePath)){
  11. $PHPReader = new PHPExcel_Reader_Excel5();
  12. if(!$PHPReader->canRead($filePath)){
  13. exit('请使用03/07版本excel');
  14. }
  15. }
  16.  
  17. //建立excel对象,此时你即可以读取文件excel文件内容
  18. $PHPExcel = $PHPReader->load($filePath);
  19. /**读取excel文件中的第一个工作表*/
  20. $currentSheet = $PHPExcel->getSheet(0);
  21. /**取得当前sheet名称*/
  22. $currentSheetName=$currentSheet->getTitle();
  23. /**取得sheet总数*/
  24. $allSheet=$PHPExcel->getSheetCount();
  25. /**取得最大的列号*/
  26. $allColumn = $currentSheet->getHighestColumn();
  27. /**转换为数字列数*/
  28. $allColumn=PHPExcel_Cell::columnIndexFromString($allColumn);
  29. /**取得一共有多少行*/
  30. $allRow = $currentSheet->getHighestRow();
  31. /*取得某一列的值 */
  32. $value->getCellByColumnAndRow(0, 1)->getValue();
  33. /* 这样就可以把excel的全部内容读取出来 */
  34. /* 时间转换 */
  35. $value=date("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($value) - 28800);

完整版的

  1. $insert_flag = true; //是否写数据库标志
  2. $errorinfo = array(); //错误信息数组
  3. $success_num=;
  4. $errorinfo1='不能为空';
  5. $errorinfo2='结束时间不能小于开始时间';
  6. $errorinfo3='所填年份在数据库中不存在';
  7. $errorinfo4='写数据失败';
  8. //文件路径
  9. //$filePath = "../03711.xlsx";
  10. //建立readerExcel对象
  11. $PHPReader = new PHPExcel_Reader_Excel2007();
  12. /**默认用excel2007读取excel,若格式不对,则用之前的版本进行读取*/
  13. if(!$PHPReader->canRead($filepath)){
  14. $PHPReader = new PHPExcel_Reader_Excel5();
  15. if(!$PHPReader->canRead($filepath)){
  16. exit('请使用03/07版本excel');
  17. }
  18. }
  19.  
  20. //建立excel对象,此时你即可以读取文件excel文件内容
  21. $PHPExcel = $PHPReader->load($filepath);
  22. /**读取excel文件中的第一个工作表*/
  23. $currentSheet = $PHPExcel->getSheet();
  24. /**取得当前sheet名称*/
  25. $currentSheetName=$currentSheet->getTitle();
  26. /**取得sheet总数*/
  27. $allSheet=$PHPExcel->getSheetCount();
  28. /**取得最大的列号*/
  29. $allColumn = $currentSheet->getHighestColumn();
  30. /**转换为数字列数*/
  31. $allColumn=PHPExcel_Cell::columnIndexFromString($allColumn);
  32. /**取得一共有多少行*/
  33. $allRow = $currentSheet->getHighestRow();
  34.  
  35. //echo "列:".$allColumn."行:".$allRow."<br/>";
  36.  
  37. /* 从第二行开始读取 */
  38. for ($currentRow=;$currentRow<=$allRow;$currentRow++){
  39. /*取得当前行每一列的值 ,列从0开始 */
  40. //$year=$currentSheet->getCellByColumnAndRow(1, $currentRow)->getValue();
  41. $year=$_GET['yearId'];
  42. $startTime=$currentSheet->getCellByColumnAndRow(, $currentRow)->getValue();
  43. $endTime=$currentSheet->getCellByColumnAndRow(, $currentRow)->getValue();
  44. $remark=$currentSheet->getCellByColumnAndRow(, $currentRow)->getValue();
  45. /*如果有一列的值为空,就跳出循环 */
  46. if ($startTime==''||$endTime==''||$year==''){
  47. $errorinfo[]=$errorinfo1.'|'.$currentRow;
  48. continue;
  49. }
  50. if ($endTime<$startTime){
  51. echo $startTime.'|'.$endTime;
  52. $errorinfo[]=$errorinfo2.'|'.$currentRow;
  53. continue;
  54. }
  55. $startTime=date("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($startTime) - );
  56. $endTime=date("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($endTime) - );
  57. $shorStartTime=str_replace('-', '.', substr($startTime, ));
  58. $shorEndTime=str_replace('-', '.', substr($endTime, ));
  59. // echo $year."|".$startTime."|".$endTime."|".$remark."<br/>";
  60. if ($insert_flag){
  61. $rs = $db -> select(, , 't_year', 'id,name', ' where id ="'. $year .'"' , 'id limit 1');
  62. if (count($rs['id'])<){
  63. $errorinfo[]=$errorinfo3.'|'.$currentRow;
  64. continue;
  65. }
  66. if ($remark==''){
  67. $sql='"';
  68. }else{
  69. $sql='('.$remark.')"';
  70. }
  71. $flag=$db -> insert(, , 't_period', 'year_id='.$rs['id'].',begtime="'.$startTime.'",endtime="'.$endTime.
  72. '",remark="'.$remark.'",timename="'.$shorStartTime.'-'.$shorEndTime.$sql);
  73. if ($flag!=){
  74. $errorinfo[]=$errorinfo4.'|'.$currentRow;
  75. }else{
  76. $success_num = $success_num + ;
  77. }
  78. }
  79.  
  80. }
  81.  
  82. unlink($filepath);
  83. if (count($errorinfo)>){
  84. echo '<span style="color:#F00" >一共导入了' . $success_num . '条记录<br>';
  85. echo "以下数据没有导入:<br>";
  86. for ($i = ; $i < count($errorinfo); $i++) {
  87. $temp_info = explode("|", $errorinfo[$i]);
  88. echo "第" . $temp_info[] . "行错误信息:" . $temp_info[] . "<br>";
  89. }
  90. } else {
  91. echo "数据导入成功<br>";
  92. echo "一共导入了" . $success_num . "条记录<br></span>";
  93. }

下载地址:http://pan.baidu.com/s/1i35ppBJ

完整版是api,另外一个是程序中用的。

php读取excel(支持03,07)的更多相关文章

  1. NPOI 导入导出excel 支持 03 07

    因为微软的office成本太高了,所以开发项目的时候电脑上没安装office,而是安装了wps.但开发语言用的是C#,所以直接调用微软的office组件是很方便的,但一方面慢,一方面成本高,所以从网上 ...

  2. Java读取excel(兼容03和07格式)

    读取excel,首先需要下载POI的jar,可以去官网下,也可以在这里下载 一.简单说明 excel2003和excel2007区别比较大,最直观的感受就是扩展名不一样,哈哈 不过,使用POI的API ...

  3. Java读取excel 支持xls 和 xlsx格式

    1.工具类public class InExcelTool { //根据指定位置单独读取一个 public static String getContent(String file, int page ...

  4. php读取excel,以及php打包文件夹为zip文件

    1.把文件下载到本地,放在在Apache环境下2.d.xlsx是某游戏的服务器名和玩家列表,本程序只适合此种xlsx文件结构,其他结构请修改index.php源码3.访问zip.php的功能是把生成的 ...

  5. java--poi读取excel图片和内容(支持03版本)

    有的时候需要将excel中所包含的图片在导入的时候取出来存到服务器中, 详细实现代码如下: package com.liuf.util; import java.io.BufferedInputStr ...

  6. 原!操作 excel 03/07

    参考 所用jar包: poi-3.11.jar poi-ooxml-3.11.jar poi-ooxml-schemas-3.11.jar /* * Project: fusion-may-open- ...

  7. poi读取excel模板,填充内容并导出,支持导出2007支持公式自动计算

    /** * 版权所有(C) 2016 * @author www.xiongge.club * @date 2016-12-7 上午10:03:29 */ package xlsx; /** * @C ...

  8. NPOI读取Excel帮助类,支持xls与xlsx,实现公式解析,空行的处理

    NPOI读取Excel(2003或者2010)返回DataTable.支持公式解析,空行处理. /// <summary>读取excel /// 默认第一行为表头 /// </sum ...

  9. JXL读取Excel(只支持xls版本)——(二)

    注意:jxl是不支持xlsx后缀的excel的.因此建议用POI读取excel. Jar包 同一一样 Java代码 package JXL; import java.io.File; import j ...

随机推荐

  1. 腾达Tenda W311MA无线网卡Linux下驱动安装

    菜鸟看这里https://help.ubuntu.com/community/WifiD ... enda_W311M 最近也买了颗Tenda W311M网卡,简单说一下驱动的安装和hostapd做S ...

  2. 微信小程序这一块(下)

    1.小程序分为两部分 :页面.组件 2.小程序中如何定义自定义组件? 凡是通过Page创建的都是页面,而通过Components创建的都是组件 当组件创建成功后,在需要使用的页面进行引入,(找到页面的 ...

  3. 《JAVA设计模式》之适配器模式(Adapter)

    在阎宏博士的<JAVA与模式>一书中开头是这样描述适配器(Adapter)模式的: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能 ...

  4. dataTable获取所有数据

    "drawCallback": function(settings,e) { var api = new $.fn.dataTable.Api( settings ); resul ...

  5. C#设计模式:策略者模式(Stragety Pattern)

    一,什么是策略模式? 1,针对同一命令或行为,不同的策略做不同的动作. 2,比如针对一组算法,将每个算法封装到具有公共接口的独立的类中,从而使它们可以相互替换.策略模式使得算法可以在不影响到客户端的情 ...

  6. maven私服nexus3.9安装配置

    maven私服nexus3.9安装配置 私服介绍 私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建.有了私服之后,当 Maven 需要下载构件时,直接请求私服 ...

  7. 使用logstash同步MongoDB数据到es

    input{ mongodb{ codec => "json" uri => 'mongodb://127.0.0.1:27017/kuaibao' placehold ...

  8. 基于ZYNQ XC7Z045 FFG 900的高性能计算模块

    一.板卡概述 本板卡基于Xilinx公司的FPGA XC7Z045 FFG 9000 芯片, 该平台为设计和验证应用程序提供了一个完整的开发平台.该平台使设计师能够更加简单进行高性能的原型设计,并且通 ...

  9. php pdo_mysql扩展安装

    本文内容是以 CentOS 为例,红帽系列的 Linux 方法应该都是如此,下面就详细说明步骤,在这里严重鄙视哪些内容??隆⑺档脑悠咴影说挠泄 PDO 编译安装的文章. 1.进入 PHP 的软件包 p ...

  10. zabbix入门之定义触发器

    zabbix入门之定义触发器 触发器的概念 触发器的定义:界定某特定的item 采集到数据的非合理区间或非合理状态.通常为逻辑表达式. 逻辑表达式(阈值):通常用于定义数据的不合理区间,其结果如下: ...