我有一个Oracle 11g数据库,正在与PHP文件进行通信。我希望我网站上的用户能够上传.xls文档,其单元格值将传递给数据库中的变量。
我想我会让用户通过基本的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);
?>
答案 0 :(得分:1)
$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
如果您还有其他问题,请发表评论。