基于PHP的管理信息系统与Excel的数据交互

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:softguner
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文介绍了在PHP环境下,设计Excel的数据导入数据库和管理信息系统数据保存为Excel的方法。此方法不仅能保证数据导入数据库的完整性,而且能免去系统数据导出后重新编辑的复杂性。与以往数据的导入导出相比更能体现出本设计的创新性与简易性。而将此设计嵌入到其他软件系统中更能使系统变得完整与快捷。
  关键词:PHP;Excel;系统数据;导入;导出
  【中图分类号】:TN948.61
  1 引言
  随着计算机技术的成熟和多种高级语言的发展,开发一个软件项目已不仅仅局限于一两种语言上。PHP脚本语言以其简洁、方便、快捷和稳定的优点,越来越受到众多软件开发者和网站制作者的青睐。通常一个企业或机关常常需要使用Excel进行办公,而其原先所安装的软件中常常因不能直接与Excel进行数据交流而导致工作量变大,浪费大量的人力资源。本文在这里基于PHP来实现Excel表格信息的向MySQL数据库导入和将页面所显示的查询结果导出为Excel工作表的功能。
  2 Excel导入数据库的原理
  2.1概述
  在此怎样将读来的数据放入数据库是实现功能的关键。我们使用前人编写好的一个PHP类读取Excel内容。
  连接数据库后,使用PHP读取Excel内容时,在此以一个实例(
  $data= new Spreadsheet_Excel_Reader ( ))将Excel文件信息进行读取。它将会导出Excel文件中所有可以识别的数据并存储在一个对象中。不过这些数据是存储在2个数组中的,而目前尚无方法或函数能实现对这些数据的访问。但可以简单的使用sheets数组名编辑其中的数据。因为sheets数组包含了读入对象的大量数据。它将会导出Excel文件中所有可以识别的数据并将其存储在一个2维数组中 。另外,只有准确定位了各个字段所表示的数据才能将数据无差错的导入到数据库中。
  2.2 流程分析
  根据导入原理所出示的流程图,如图1所示:
  图1 导入原理流程图
  总体流程分析:根据图1的流程图可描述如下:用户在本地计算机上选定一个文件后,当要上传到数据库时,程序先要检查是否为.xls后缀,如果不是则程序提示所选文件格式错误。若是.xls后缀的文件则继续运行程序加载reader类。PHP通过reader类实现将Excel中的数据读取到sheets数组中并待用。最后编写PHP代码将sheets中的数据插入到数据库中,导入过程结束。
  2.3详细设计与实现
  按照图1所示的流程,本文将给出用PHP导入Excel的详细设计方案。首先检查是否后缀为.xls的文件,然后读取表格数据,最后将数据利用嵌入的sql语句导入到数据库中。
  2.3.1 检查是否为.xls后缀的文件
  这里自定义了一个新的函数,利用此函数,在用户点击导入数据的时候检查所选文件的后缀名。函数内容示例如下:
  function import_check() //函数名
  {
  var f_content = form1.file.value;
  Var fileext=f_content.substring(f_content.lastIndexOf("."),f_content.length)
  fileext=fileext.toLowerCase()
  if (fileext!='.xls')
  {
  alert("对不起,导入数据格式必须是xls格式文件,请您调整格式后重新上传!");
  return false;
  }
  }
  用户在完成选择后在点击上传时调用import_check()函数检查后缀名。示例如下:
  
  2.3.2 加载reader.php读取Excel中的数据
  当所选文件满足条件后进行加载reader函数用来读取Excel表格数据。示例如下:
  require('reader.php');
  $upload_file_name=$_FILES['upload_file']['name'];
  $data=new Spreadsheet_Excel_Reader(); //新建一个实例;
  $data->setOutputEncoding('gb2312'); //设置输出文本格式;
  $data->read("$upload_file_name"); //读取Excel文件中的表格数据
  @ $db = mysql_connect('localhost', root, '') or die("Could not
  connect to database."); //连接数据库
  mysql_query("set names 'gb2312'"); //输出中文
  mysql_select_db('tzsdb'); //选择数据库
  error_reporting(E_ALL ^ E_NOTICE);
  2.3.3 将表格數据导入到数据库
  当完成数据读取后,Excel中的表格数据被存在了2个数组中,通过简单的调用sheets数组来将数据有条理的导入到数据库中,示例如下:   for($i=1;$i<=$data->sheets[0]['numRows'];$i++){
  $sql = "INSERT INTO tzs VALUES(
  '". $data->sheets[0]['cells'][$i][1]."',//读取第一列的所有数据;
  '". $data->sheets[0]['cells'][$i][2]."',//读取第二列的所有数据;
  )";
  mysql_query($sql);
  }
  echo"信息导入成功!";
  i代表行数,这里是将2列数据的所有行导入到名为tzs的数据库。
  在导入数据表之前最好在Excel中以列为单位编辑好数据,因为导入时Excel表中的一列数据对应sql数据库中的一个字段。
  3系统数据导出为Excel的原理
  3.1概述
  设计此功能的目的是将一份表单查询或排序后的结果导出为Excel来进行备份或者拷贝给其他用户使用。使用Output Control 函数可以自由地控制脚本中数据的输出。它非常地有用,特别是对于:当想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。最终我们会做一个新的.html页面文件,将查询后的页面信息利用变量导入进去,最后导出为Excel,导出的Excel内容恰好就是新建的.html中的内容。
  3.2 流程分析
  根据事先分析的系统数据导出为Excel原理设计出如图2所示的流程图。
  图2系统数据导出为Excel原理设计图
  总体流程分析:依据图2的流程图可以描述如下:首先,用户在查询或排序完成后我们将会利用ob_start();ob_get_contents();ob_end_flush();等函数将页面内容获取到browser的cache中。其次,将页面内容的赋值给自定义的一个变量。然后,我们要做的是新建或事先建好一个.html页面文件,将查询后的页面信息利用刚定义的变量导入进去,这样就实现了利用html文件的中间跳板作用。最后,引用能实现导出功能的PHP文件将中间跳板作用的html文件内容下载为Excel表格。
  3.3详细设计与实现
  按照图2所示的流程和总体流程分析,本文将给出用PHP将查询结果导出为Excel的详细设计方案。首先读取页面内容,然后向跳板html文件写入数据,最后html里的数据引用新的PHP代码下载为Excel格式。
  3.3.1 读取页面内容
  读取页面内容时使用ob_start();ob_get_contents();ob_end_flush();函数。使用这三个函数可以将页面内容获取到browser的cache中,再将cache里的数据赋值给自定义的一个变量进行页面内容的操作。操作示例如下:
  ob_start();//打开browser的缓冲区
  echo "";
  echo"";
  if($id!=NULL){
  echo "";};
  if($name!=NULL){
  echo "";};
  echo"";
  echo "
学号姓名
";
  $content = ob_get_contents();//将缓冲区数据赋值给自定义的函数
  ob_end_flush();//输出页面内容并关闭缓冲区
  3.3.2 缓冲区数据导入到另一個html
  当完成页面数据获取后,下一步就是将数据导入到一个作为跳板的html中。示例如下:
  $fp = fopen("0001.html", "w");//打开跳板html文件
  fwrite($fp, $content);//将cache数据写入到跳板html
  fclose($fp);//关闭跳板文件
  3.3.3 跳板html内容的导出
  当完成页面数据获取及保存到另一个跳板html文件中去后,最后一步就是把跳板html数据导出,这里我们用PHP头函数将跳板文件导出为Excel。示例如下:
  <?php
  header("Content-type:application/vnd.ms-excel");//设置下载类型为Excel文件
  header("Content-Disposition:filename=test.xls");
  $url="http://localhost/yjsxxglxt/0001.html";
  //资源定位跳板html文件位置
  echo file_get_contents( $url );
  //读取跳板html数据
  ?>
  这样一个能将查询或排序后的页面内容下载为Excel格式文件的功能就成功实现了,从而方便数据的处理,节省了办公时间。
  4 结束语
  本文从PHP实现Excel导入导出功能的原理出发,结合自己原创性想法,新辟蹊径,合理实现Excel导入数据库及页面内容导出为Excel的功能。结合其他软件来看,更能体现Excel表格导入导出功能的重要性,有益于办公效率的提高和资源的有效利用。
  参考文献:
  [1][美]NickKew 著.《Apache模块开发指南》.出版社:电子工业出版社.2008
  [2][美]沃尔曼等 著,岳丽华,龚育昌等 译.《数据库系统基础教程》.出版社:机械工业出版社.2003
  [3]张海藩 著.《软件工程导论(第5版)》.出版社:清华大学出版社.2008
  [4]徐辉 著.《基于XML的Excel和MySQL数据交换的研究及实现》.[期刊论文]-《电脑开发与应用》.2009年3期
  [5]周寅 著.《在PHP中实现Excel工作表数据的导入导出》.[期刊论文]-《电脑学习》.2006年4期
  [6]赵鹤琴 著.《设计动态网站的最佳方案:Apache+PHP+MySQL》.[期刊论文]-《计算机工程与设计》.2007年4期
其他文献
摘要:水利工程的施工管理是一项复杂的工作,管理本身是一项系统工程,水利工程施工管理的任务是通过工程质量、安全、进度、成本管理等系列的管理手段,尽量地以最少的投入,  建设成让工程业主满意的合格产品,从而让自己获得合理的报酬。如何做好水利工程的施工管理是值得我们深入探讨的问题。  关键词:水利工程施工管理;问题;措施  【中图分类号】TV52  一、水利工程施工管理的影响因素及主要特征  1.1水利
期刊
摘要:本文分析了送电线路的施工工艺,希望能供同行参考。  关键词:送电线路 施工技术  【中图分类号】TM247  电力系统中送电线路的任务是输送电能,联络各发电厂、变电站(所)使之并列运行,实现电力系统联网,同时能实现电力系统间的功率传递。输电线路是电力工业的大动脉,是电力系统的重要组成部分,它的可靠性关系到整个电网的安全。送电线路施工技术工作基本上围绕提高施工时效和工程质量,降低劳动强度,实现
期刊
摘要:随着我国经济建设的迅速发展,人民生活水平的不断提高,高速公路的建设成为时代发展的主旋律,在高速公路建设过程中,如何加强对工程造价的影响因素分析与控制,是高速公路建设过程中控制的重点环节,对我国高速公路的发展建设具有十分重要的借鉴价值。  关键词:工程造价 控制方法 造价控制  【中图分类号】U412.36+6  1、高速公路工程造价的影响因素  目前,我国高速公路的建设达到前所未有的发展水平
期刊
摘要:结合瑞典超高强钢WELDOX960的性能特点和单缸插销起重臂的结构形式,从起重机吊臂的优化设计、焊接工艺等方面总结出了超高强钢起重机吊臂焊接质量控制方法,保证了产品质量。  关键词:;WELDOX960钢;起重机吊臂;焊接工艺;变形控制  【中图分类号】TG457.1  0前言  近年来,我国经济进入突飞猛进的发展期,作为经济发展基石的机械工業也随之取得了飞速发展。市场对现代工程机械及冶金矿
期刊
摘要:OFDM信道估计技术可以分为:导频辅助信道估计、盲信道估计这两类,本文针对基于导频的信道估计算法进行了详细的分析和研究,其中包括导频结构的分布、基于块状导频的信道估计算法和基于梳状导频的信道插值算法,并在经典算法的基础上对其进行了改进。  关键词::低压电力线;正交频分复用;信道估计;算法  【中图分类号】TN915.853  正交频分复用(OFDM)英文全称为Orthogonal Freq
期刊
【论文关键词】:水利水电工程; 施工; 安全管理  【中图分类号】TV7  随着我国建筑业管理体制改革的不断深化,以工程项目管理为核心的中国水利水电施工企业的经营管理体制也发生了很大的变化。以“项目法人制、招标投标制、建设监理制”等为核心内容的三项制度的不断推广。作为施工企业,既要为业主提供一个合格、优良的建筑产品,又要取得一定的社会效益和经济效益,这就要求项目经理部必须对施工项目进行规范、科学地
期刊
【中图分类号】TU761.6  一、引言  随着我国现代化城市的发展, 高层建筑日益增多。測量的质量如何将直接影响建筑物的质量, 施工测量贯穿于施工全过程, 应配合施工进度, 若有差错, 将延误工期。下面针对高层建筑施工测量的主要内容与专业测量特点, 对高层建筑施工测量工作进行阐述。  二、高层建筑工程施工测量的几个特点  1.精度要求高  高层建筑的精度的准确与否直接决定着施工的质量。首先,为加
期刊
摘要:近年来,由于城市土地供应日趋紧张,随之兴起了城市高层建筑的建设热潮,而建设监理工作也面临着一些新的问题,本文主要试就此问题进行探讨。  关键词:高层建筑 监理 质量控制  中图分类号:TU72 文献标识码:A 文章编号:  1 施工准备阶段的监理工作  1.1 确定项目总监,成立项目监理组织  对于所监理的高层建筑,监理单位应根据工程的规模、性质,业主对监理的要求,委派相称职的人员担任项目总
期刊
[摘要]水泥砼路面施工时出现的质量问题,其内因与外部条件,非常复杂。本文对水泥砼路面施工破坏的原因进行分析,并提出及防治措施。  [关键词]水泥砼路面施工质量控制措施  【中图分类号】U415.52  近年来,采用水泥砼路面的公路建设发展很快,但在使用中发现,由于一些路基通病引起了砼路面的破损,不仅影响了砼路面的美观、行车平稳和舒适性,而且不易修复,影响了水泥砼路面的使用寿命。  1水泥砼路面施工
期刊
摘要;文章对强直性脊柱炎的治疗与护理进行了说明  关键词: 行为治疗;强直性脊柱炎;护理  【中图分类号】R45  强直性脊柱炎(AS)是一种类风湿因子阴性,累及中轴关节和肌腱韧带骨附着点的慢性炎症性疾病。该病发病率在炎症性关节炎中占第2位,可引起腰痛、晨僵、脊柱活动受限、驼背畸形、外周关节受累、肌腱端炎、足跟痛等关节症状以及前葡萄膜炎或虹膜炎、心血管表现、肺部表现、骨质疏松等关节外症状,是患者丧
期刊