需要用到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. Comprehensive Guide to build a Recommendation Engine from scratch (in Python) / 从0开始搭建推荐系统

    https://www.analyticsvidhya.com/blog/2018/06/comprehensive-guide-recommendation-engine-python/, 一篇详细 ...

  2. JS截取与分割字符串

    1.substr 方法 返回一个从指定位置开始的指定长度的子字符串. stringvar.substr(start [, length ]) start :必选项.所需的子字符串的起始位置.字符串中的 ...

  3. JsonView视图

    同一个对象,在不同的场景,返回不同的属性,如getUserById返回User对象包含password值,而getAllUsers返回User集合,不包含password值(通过接口查看显示,序列化的 ...

  4. LOJ 2183 / SDOI2015 序列统计 (DP+矩阵快速幂)

    题面 传送门 分析 考虑容斥原理,用总的方案数-不含质数的方案数 设\(dp1[i][j]\)表示前i个数,和取模p为j的方案数, \(dp2[i][j]\)表示前i个数,和取模p为j的方案数,且所有 ...

  5. hdu4734 F(x)(数位dp)

    题目传送门 F(x) Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. SqlServer 查看表注释

    SELECT DISTINCT d.name, f.value FROM syscolumns a LEFT JOIN systypes b ON a.xusertype= b.xusertype I ...

  7. .net core 简单集成JWT报No authenticationScheme was specified, and there was no DefaultChallengeScheme found错误

    #region JWT 认证 services .AddAuthentication(JwtBearerDefaults.AuthenticationScheme) //.AddCustomAuth( ...

  8. 部署Lighttpd到252板子

    1.先到lighttpd官网下载对应版本的软件包: 如: lighttpd-1.4.30.tar.gz 2. 将压缩包解压到任意目录得到文件夹 lighttpd-1.4.30 3. 执行配置命令:  ...

  9. Javascript中中括号的几种形式

    有以下几种形式 var arr = []; var b = [1,1,1]; var c = b[0]; var obj = {'name':'tom','age':23}; var d = obj[ ...

  10. Ubuntu14.04(nginx+php+mysql+vsftp)配置安装流程

    Ubuntu14.04(nginx+php+mysql+vsftp)配置安装流程 1.先切换到root用户 sudo  su 2.更新软件源 apt update apt-get upgrade 3. ...