在WEB页面上将EXCEL文件导入、导出到数据库中

  笔者由于工作需要,在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 < $nColNum - 1; $i ++) { $strSQL .= $arrTableStru [$i]["FIELDNAME"].", "; } $strSQL .= $arrTableStru [$nColNum - 1]["FIELDNAME"].") VALUES "; $strTmp = ""; //构造SQL语句,数据部分 for ($i = 1; $i <= $nRowNum; $i ++) { $strRowChk = "RowChk".$i; if ($$strRowChk == "Y") { $strTmp .= "("; for ($j = 1; $j < $nColNum; $j ++) { $strVal = "Row" . $i . "Col" . $j; if ($arrTableStru[$j - 1]["FIELDTYPE"] == "A") { $strTmp .= "'".$$strVal."', "; } else { $strTmp .= $$strVal.", "; } } $strVal = "Row" . $i . "Col" . $nColNum; if ($arrTableStru[$nColNum - 1]["FIELDTYPE"] == "A") { $strTmp .= "'".$$strVal."'), "; } else { $strTmp .= $$strVal."), "; } if ($i % $nBatNum == 0) { $strTmp = substr ($strTmp, 0, strlen ($strTmp) - 2).";"; if (!$do->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; } } ?> 劳动合同信息导入 rel="stylesheet" type="text/css" href="../../common/formclass.css"> <script language="Javascript" src="../../common/allload.inc"></script> <script language="Javascript" src="../../common/ortfunc.inc"></script> <script LANGUAGE="javascript" > function InputParams () { var nCount = 0; var strName = ""; var strValue = ""; var strHtml = ""; var nRowNum = document.all.AsExcel.GetRowNum; var nColNum = document.all.AsExcel.GetColNum; if (nRowNum < 1) { alert ("Excel 文件为空,不用上传!"); return false; } if (!confirm ("如果数据较多,导入的速度会有些慢,确定吗?")) return; strHtml += "
"; strHtml += "
"; } strValue = "Y"; nCount ++; } else { strValue = "N"; } strHtml += "
"; } if (nCount == 0) { alert ("请选择要导入的数据!"); return false; } document.formImport.innerHTML += strHtml; document.formImport.submit(); } </script>
  导入数据的页面如下:   可以显示导入EXCEL文件的所有内容,并且可以手工选择要导入的数据,可以对数据进行临时的修改处理(修改过后数据以红颜色显示,以示区别)。   选择文件界面。可以选择本地硬盘上的EXCEL文件,包括XLS文件和CSV两种格式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值