笔者由于工作需要,在oa系统中,需要将excel文件的内容导入到数据库中,同时还需要将数据库中的内容导出到excel文件中。笔者的oa是用php开发的,并且应用在web页面上,所以直接用php处理难度比较大。经过研究,笔者用delphi开发了一个activex控件,来处理excel文件的数据,然后将数据提交到服务器上,再保存到数据库中,轻松的实现了excel文件数据的导入。导出没有用activex控件,直接用php处理。方法是将数据直接生成csv文件,因为csv是逗号分隔的文本文件,并且可以直接用excel打开处理,所以可以满足要求。下面将实现的方法介绍一下。导入的页面代码: 人员编号, fieldname=>stuffid, fieldtype=>a), array (caption=>开始日期, fieldname=>begindate, fieldtype=>a), array (caption=>结束日期, fieldname=>enddate, fieldtype=>a), array (caption=>合同内容, fieldname=>contracttext, fieldtype=>a), array (caption=>备注, fieldname=>thismemo, fieldtype=>a), array (caption=>服务器文件名, fieldname=>docfile, fieldtype=>a), array (caption=>文件类型, fieldname=>filetype, fieldtype=>a), array (caption=>本地文件名, fieldname=>filename, fieldtype=>a), array (caption=>文件扩展名, fieldname=>extname, fieldtype=>a)); //构造sql语句,字段名部分 $strsql = insert into hr_workcontract (; $strtemp = ; for ($i = 0; $i execsql ($strsql.$strtmp)) $do->setobject (err, 数据导入失败!); else $do->setobject (err, 数据导入成功!); //echo $strsql.$strtmp; $strtmp = ; } } } if (trim ($strtmp) != ) { $strtmp = substr ($strtmp, 0, strlen ($strtmp) - 2).;; if (!$do->execsql ($strsql.$strtmp)) $do->setobject (err, 数据导入失败!); else $do->setobject (err, 数据导入成功!);//echo $strsql.$strtmp; } }?>劳动合同信息导入 导入数据的页面如下:可以显示导入excel文件的所有内容,并且可以手工选择要导入的数据,可以对数据进行临时的修改处理(修改过后数据以红颜色显示,以示区别)。选择文件界面。可以选择本地硬盘上的excel文件,包括xls文件和csv两种格式。
