筆者由於工作需要,在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兩種格式。