上传的Excel文件如何更新Oracle数据库?

我有一个Oracle 11g数据库,与PHP文件进行通信。 我希望我的网站上的用户能够上传.xls文档,其单元格值将传递给数据库中的variables。

我想我会让用户通过一个基本的html表单上传.xls,这似乎是最简单的。 如何从上传的.xls文件中获取数据来更新数据库?

注意:最上面的几行可能不得不忽略,因为它们是标题/标题。 我怎么能让程序忽略这些?

示例表:

TITLES AND OTHER HEADERS - Probably 2-3 rows of cells Header1 | Header2 | Header3 | Header4 | Header5 | Header6 | Header7 | Header8 value1 | value2 | value3 | value4 | value5 | value6 | calue7 | value8 ... valueN | valueN | valueN | valueN | valueN | valueN | valueN | valueN 

我目前的代码:

形成:

  <?php require "reader.php"; ?> <form name="SLCCA" action="update_handler2.php" method="post"> <u>GF:</u> <input type="file" name="xls_doc"><br> <input type="submit" value="Submit"> 

表单处理程序:

  <?php $xls_doc=$_POST["xls_doc"]; $objConnect = oci_connect("user", "pass", "(description=(address=(protocol=tcp)(host=hostaddress.com)(port=1533))(connect_data=(service_name=sid)))"); require_once('reader.php'); ?> <?php $reader=new Spreadsheet_Excel_Reader(); $reader->setUTFEncoder('iconv'); $reader->setOutputEncoding('UTF-8'); $reader->read($xls_doc); $strSQL = "LOAD DATA INFILE 'xls_doc.dat' BADFILE 'xls_doc.bad' DISCARDFILE 'xls_doc.dsc' APPEND INTO TABLE INTOXDM.LCCR"; $objParse = oci_parse($objConnect, $strSQL); $objExecute = oci_execute($objParse); ?> 

首先, 将XLS转换为csv :

 $reader=new Spreadsheet_Excel_Reader(); $reader->setUTFEncoder('iconv'); $reader->setOutputEncoding('UTF-8'); $reader->read($filename); 

现在使用SQL * Loader来读取它:

 LOAD DATA INFILE 'my_file.dat' BADFILE 'my_file.bad' DISCARDFILE 'my_file.dsc' APPEND INTO TABLE my_table 

如果还有其他问题,请留下评论。