【发布时间】:2014-12-09 09:25:22
【问题描述】:
我是 PHP 新手,正在尝试使用 PHP 将数据从 excel 上传到数据库。我有以下代码可以使用 php 将数据从 .xls 文件上传到 mysql 数据库。代码工作正常,只是它没有将第一行的第一个 coloun 分配给数组,尽管代码能够访问并在表中打印它。也需要帮助阅读第一个元素。 下面是假设我们有一个名为 example.xls 的 excel 文件的代码。
<?php
require 'Classes/PHPExcel.php';
require_once 'Classes/PHPExcel/IOFactory.php';
// $host = 'localhost';
// $username = 'root';
// $password = 'root';
// $dbname = 'dumy';
// $conn=mysql_connect($host,$username,$password) or die("Could not connect");
// mysql_select_db($dbname,$conn) or die("could not connect database");
$path = "example.xls";
$queryArray = array();
$objPHPExcel = PHPExcel_IOFactory::load($path);
$flag=true;
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
$worksheetTitle = $worksheet->getTitle();
if($flag)
{
$highestRow = 0;
$highestColumn = 'A';
$flag= false;
}
$curRow = $worksheet->getHighestRow();
$curColumn = $worksheet->getHighestColumn('');
$curColumnIndex = PHPExcel_Cell::columnIndexFromString($curColumn);
$highestRow = ($highestRow<$curRow)?$curRow:$highestRow;
$highestColumn = ($highestColumn<=$curColumn)?$curColumn:$highestColumn;
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$nrColumns = ord($highestColumn) - 64;
echo "<br>The worksheet ".$worksheetTitle." has ";
echo $nrColumns . ' columns (A-' . $highestColumn . ') ';
echo ' and ' . $curRow . ' row.';
echo '<br>Data: <table border="1"><tr>';
for ($row = 1; $row <= $curRow;$row++) {
echo '<tr>';
for ($col = 0; $col < $curColumnIndex; $col++) {
$cell = $worksheet->getCellByColumnAndRow($col, $row);
$val = $cell->getCalculatedValue();
$queryArray[$row][$col] = (string)$val;
echo '<td>'.$val.'<br></td>';
}
echo '</tr>';
}
echo '</table>';
}
$sql = 'INSERT INTO Dummy VALUES';
$value = NULL;
foreach($queryArray as $v)
{
$value .= '(';
foreach ($v as $check)
$value .= '\''.$check.'\',';
$value = substr($value,0,-1);
$value .= '),';
}
$sql.=substr($value,0,-1).';';
echo $sql;
//mysql_query($sql) or die('Invalid query: ' . mysql_error());
?>
【问题讨论】:
-
我认为您应该将 xls 格式转换为 csv。试试看……
标签: php mysql database file-handling