需要用到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. User-Based Collaborative Recommender System

    Collaborative Recommender System基于User给Item的打分表,认为相似度很高的用户,会对同一个item给出相似的分数,找出K个相似度最高的用户,集合他们的打分,来推算 ...

  2. std::map使用结构体自定义键值

    使用STL中的map时候,有时候需要使用结构题自定义键值,比如想统计点的坐标出现的次数 struct Node{ int x,y; }; ...... map<Node,int>mp; m ...

  3. package和import语句_5

    J2SDK中主要的包介绍   java.lang—包含一些Java语言的核心类,如String.Math.Integer.System和 Thread,提供常用功能. java.awt—包含了构成抽象 ...

  4. Vue3.0响应式实现

    基于Proxy // 弱引用映射表 es6 防止对象不能被回收 let toProxy = new WeakMap(); // 原对象: 代理过得对象 let toRaw = new WeakMap( ...

  5. [Linux] 005 Linux 常见目录的作用及一些注意事项

    1. Linux 常见目录及其作用 目录名 作用 /bin/ 存放系统命令的目录普通用户各超级用户都可以执行放在 /bin 下的命令在单用户模式下也可以执行 /sbin/ 保存和系统环境相关的命令只有 ...

  6. ubuntu离线安装mysql

    一:ubuntu离线安装mysql 转载来源:https://blog.csdn.net/liuhuoxingkong/article/details/80696574 参考文章:https://ww ...

  7. Server Tomcat v8.5 Server at localhost failed to start.

    问题描述:新建了一个项目,建立servlet文件然后改了下@WebServlet("floorButtonServlet")映射的路径,重启debug之后服务器启动失败. 在网上查 ...

  8. python学习二十三天函数的定义

    在计算机编程中,函数就是可以重复调用,可以传递参数,减少代码的量,可以高效写出好的代码,提高软件的运行质量,下面简单讲述python函数的定义方式 1,函数的定义 函数的定义用关键词def  函数名跟 ...

  9. CSS3中resize属性

    说明: resize属性是指定一个元素是否可由用户调整大小的. 语法: resize:none | both | horizontal | vertical none:用户不可一调整元素的尺寸(默认值 ...

  10. SELECT INTO - 从一个查询的结果中创建一个新表

    SYNOPSIS SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ AS output_name ] [ ...