筆者由于工作需要,在oa系統中,需要將excel文件的內容導入到數據庫中,同時還需要將數據庫中的內容導出到excel文件中。筆者的oa是用php開發的,并且應用在web頁面上,所以直接用php處理難度比較大。經過研究,筆者用delphi開發了一個activex控件,來處理excel文件的數據,然后將數據提交到服務器上,再保存到數據庫中,輕松的實現了excel文件數據的導入。導出沒有用activex控件,直接用php處理。方法是將數據直接生成csv文件,因為csv是逗號分隔的文本文件,并且可以直接用excel打開處理,所以可以滿足要求?! ∠旅鎸崿F的方法介紹一下。導入的頁面代碼: "人員編號", "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文件的所有內容,并且可以手工選擇要導入的數據,可以對數據進行臨時的修改處理(修改過后數據以紅顏色顯示,以示區別)?! ∵x擇文件界面??梢赃x擇本地硬盤上的excel文件,包括xls文件和csv兩種格式。