需要用到PHPExcel这个类

附上代码

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

完整版的

$insert_flag = true; //是否写数据库标志
$errorinfo = array(); //错误信息数组
$success_num=;
$errorinfo1='不能为空';
$errorinfo2='结束时间不能小于开始时间';
$errorinfo3='所填年份在数据库中不存在';
$errorinfo4='写数据失败';
//文件路径
//$filePath = "../03711.xlsx";
//建立readerExcel对象
$PHPReader = new PHPExcel_Reader_Excel2007();
/**默认用excel2007读取excel,若格式不对,则用之前的版本进行读取*/
if(!$PHPReader->canRead($filepath)){
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($filepath)){
exit('请使用03/07版本excel');
}
} //建立excel对象,此时你即可以读取文件excel文件内容
$PHPExcel = $PHPReader->load($filepath);
/**读取excel文件中的第一个工作表*/
$currentSheet = $PHPExcel->getSheet();
/**取得当前sheet名称*/
$currentSheetName=$currentSheet->getTitle();
/**取得sheet总数*/
$allSheet=$PHPExcel->getSheetCount();
/**取得最大的列号*/
$allColumn = $currentSheet->getHighestColumn();
/**转换为数字列数*/
$allColumn=PHPExcel_Cell::columnIndexFromString($allColumn);
/**取得一共有多少行*/
$allRow = $currentSheet->getHighestRow(); //echo "列:".$allColumn."行:".$allRow."<br/>"; /* 从第二行开始读取 */
for ($currentRow=;$currentRow<=$allRow;$currentRow++){
/*取得当前行每一列的值 ,列从0开始 */
//$year=$currentSheet->getCellByColumnAndRow(1, $currentRow)->getValue();
$year=$_GET['yearId'];
$startTime=$currentSheet->getCellByColumnAndRow(, $currentRow)->getValue();
$endTime=$currentSheet->getCellByColumnAndRow(, $currentRow)->getValue();
$remark=$currentSheet->getCellByColumnAndRow(, $currentRow)->getValue();
/*如果有一列的值为空,就跳出循环 */
if ($startTime==''||$endTime==''||$year==''){
$errorinfo[]=$errorinfo1.'|'.$currentRow;
continue;
}
if ($endTime<$startTime){
echo $startTime.'|'.$endTime;
$errorinfo[]=$errorinfo2.'|'.$currentRow;
continue;
}
$startTime=date("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($startTime) - );
$endTime=date("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($endTime) - );
$shorStartTime=str_replace('-', '.', substr($startTime, ));
$shorEndTime=str_replace('-', '.', substr($endTime, ));
// echo $year."|".$startTime."|".$endTime."|".$remark."<br/>";
if ($insert_flag){
$rs = $db -> select(, , 't_year', 'id,name', ' where id ="'. $year .'"' , 'id limit 1');
if (count($rs['id'])<){
$errorinfo[]=$errorinfo3.'|'.$currentRow;
continue;
}
if ($remark==''){
$sql='"';
}else{
$sql='('.$remark.')"';
}
$flag=$db -> insert(, , 't_period', 'year_id='.$rs['id'].',begtime="'.$startTime.'",endtime="'.$endTime.
'",remark="'.$remark.'",timename="'.$shorStartTime.'-'.$shorEndTime.$sql);
if ($flag!=){
$errorinfo[]=$errorinfo4.'|'.$currentRow;
}else{
$success_num = $success_num + ;
}
} } unlink($filepath);
if (count($errorinfo)>){
echo '<span style="color:#F00" >一共导入了' . $success_num . '条记录<br>';
echo "以下数据没有导入:<br>";
for ($i = ; $i < count($errorinfo); $i++) {
$temp_info = explode("|", $errorinfo[$i]);
echo "第" . $temp_info[] . "行错误信息:" . $temp_info[] . "<br>";
}
} else {
echo "数据导入成功<br>";
echo "一共导入了" . $success_num . "条记录<br></span>";
}

下载地址: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. Java IO(1)

    IO这一部分内容还是比较多的,对于基础的枯燥但是又重要的内容还是将它记下来比较好. 关于File类 Ø File类直接继承与Object类,File类描述了文件本身的一些属性,File类用来获取或者处 ...

  2. [Linux] 029 脚本安装包

    1. 脚本安装包 脚本安装包并不是独立的软件包类型,常见安装的是源码包 是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装 非常类似于 Windows 下软件的安装方式 ...

  3. knn算法手写字识别案例

    import pandas as pd import numpy as np import matplotlib.pyplot as plt import os from sklearn.neighb ...

  4. P1613跑路

    题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资,小A买了一个十分牛B的空间跑路器,每秒钟 ...

  5. JavaScript 中的 Function.prototype.bind() 方法

    转载自:https://www.cnblogs.com/zztt/p/4122352.html Function.prototype.bind()方法 bind() 方法的主要作用就是将函数绑定至某个 ...

  6. 2018-8-10-win10-UWP-发邮件

    title author date CreateTime categories win10 UWP 发邮件 lindexi 2018-08-10 19:17:19 +0800 2018-2-13 17 ...

  7. 机器学习-线性回归补充-R^

    线性回归算法在选自变量会遇到两个问题:一是去掉多重共线性干扰,二是选择最优自变量组合. 线性回归步骤 1.选择自变量 注意点 去掉多重共线性干扰,选择最优自变量组合.这里需要理解决定系数:R^.它是理 ...

  8. usb server新产品(旧老板设备)-给自己一个学习硬件的动力

  9. Sass值列表

    所谓值列表 (lists) 是指 Sass 如何处理 CSS 中: margin: 10px 15px 0 0 或者: font-face: Helvetica, Arial, sans-serif ...

  10. openstack--all-in-one部署

    安装过程 本次宿主机(即安装OpenStack的机器)的操作系统是CentOS 7.5.安装的OpenStack是目前最新的rocky版本,官方文档建议机器至少有16 GB的内存,处理器硬件虚拟化扩展 ...