读取XLSX表以使用PHPExcel提供MySQL表

mlh*_*mlh 17 mysql phpexcel

我发现PHPExcel库很棒,可以用PHP(读,写等)操作Excel文件.

但在文档中没有解释如何读取XLSX工作表来提供MySQL表 ...

抱歉这个愚蠢的问题,但我需要它来完成我的工作,并在网上找不到答案.

一个小例子可能非常有用.

非常感谢.

更新 :

我确切地说我的问题:

我在文档中找到的可以帮助我的代码的唯一部分是读取Excel文件并将其显示在HTML表格中:

`require_once 'phpexcel/Classes/PHPExcel.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);

$objPHPExcel = $objReader->load("edf/equipement.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();

$highestRow = $objWorksheet->getHighestRow(); 
$highestColumn = $objWorksheet->getHighestColumn(); 

$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 

echo '<table border="1">' . "\n";
for ($row = 1; $row <= $highestRow; ++$row) {
  echo '<tr>' . "\n";

  for ($col = 0; $col <= $highestColumnIndex; ++$col) {
    echo '<td>' . $objWorksheet->getCellByColumnAndRow($col, $row)->getValue() . '</td>' . "\n";
  }

  echo '</tr>' . "\n";
}
echo '</table>' . "\n";`
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用循环来提供我的MySQL表,但我不知道如何...我在OOP中不知道...

请问有人可以帮助我吗?

Ima*_*dem 8

第一个for循环遍历行,第二个循环遍历列.所以,你的"问题"有很多解决方案.

例如,您可以填充数组并为每一行创建一个insert语句.如下:

$rows = array();
for ($row = 1; $row <= $highestRow; ++$row) {
  for ($col = 0; $col <= $highestColumnIndex; ++$col) {
    $rows[$col] = mysql_real_espace_string($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
  }

  mysql_query("INSERT INTO your_table (col1,col2) VALUES ($rows[1],$rows[2])");
}
Run Code Online (Sandbox Code Playgroud)

显然,这个代码可以改进.


mae*_*416 8

这是代码

$inputFileName = $upload_path . $filename;
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($inputFileName);
$objWorksheet = $objPHPExcel->getActiveSheet();

$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$rows = array();
for ($row = 1; $row <= $highestRow; ++$row) {
  for ($col = 0; $col <= $highestColumnIndex; ++$col) {
    $rows[$col] = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
  }
  mysql_query("INSERT INTO upload (`item_number`,`qty_sold`,`cost_home`) VALUES ($rows[1],$rows[2],$rows[3])");
}

?>
Run Code Online (Sandbox Code Playgroud)

我试过mysql_query("INSERT INTO upload(col1,col2)VALUES($ rows [1],$ rows [2])"); 同样但没有奏效.该表保持空白