需要用到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. 模拟赛T5 : domino ——深搜+剪枝+位运算优化

    这道题涉及的知识点有点多... 所以还是比较有意思的. domino 描述 迈克生日那天收到一张 N*N 的表格(1 ≤ N ≤ 2000),每个格子里有一个非 负整数(整数范围 0~1000),迈克 ...

  2. Lambda拉姆达表达式

    拉姆达表达式常用于委托,也就是说拉姆达表达式是匿名函数,简单点就是函数. a => a.Equals("string"); //原形为: (a) => { return ...

  3. < python PIL - 批量图像处理 - RGB图像生成灰度图像 >

    < python PIL - 批量图像处理 - RGB图像生成灰度图像 > 直接用python自带的PIL图像库,将一个文件夹下所有jpg/png的RGB图像转换成灰度/黑白图像 from ...

  4. python学习那点事---pycharm使用弹框问题如何解决

    学习python的目标:年后可以找一份不错的维护工作. 2019.11.4日是第一天开始学习python,从开始安装python3.6版本和pycharm开始.安装python版本非常顺利的就完成了, ...

  5. Ubuntu TTy字体

    目的:修改tty终端下的字体大小,中文显示,字体美观问题 Linux版本:xubuntu14.04 当切换到tty终端模式式,中文乱码,且字体太小,影响阅读.在网上搜了一些资料,将问题及解决方案记录如 ...

  6. [Python3] 021 面向对象 第一弹

    目录 1. 面向对象概述 1.1 OOP 思想 1.2 几个名词 1.3 类与对象 2. 类的基本实现 2.1 类的命名 2.2 如何声明一个类 2.3 如何实例化一个类 2.4 如何访问对象成员 2 ...

  7. A AFei Loves Magic

    链接:https://ac.nowcoder.com/acm/contest/338/A来源:牛客网 题目描述 AFei is a trainee magician who likes to stud ...

  8. Python之读写文本数据

    知识点不多 一:普通操作  # rt 模式的 open() 函数读取文本文件 # wt 模式的 open() 函数清除覆盖掉原文件,write新文件 # at 模式的 open() 函数添加write ...

  9. 道路识别demo

    最近做的道路识别一开始终于弄懂了点东西,一开始在网上找到了一个简单的道路识别的opencvsharp的版本.我觉得opencvsharp真的是一个很好的东西,它封装了比opencv更多的数据结构和库, ...

  10. axios 利用new FileReader() 下载文件获取返回的错误信息

    this.axios({           method: "post",           url: url,           data: data,           ...