Чтение листа XLSX для подачи таблицы MySQL с помощью PHPExcel

Я нашел библиотеку PHPExcel блестящей для обработки файлов Excel с помощью PHP (чтение, запись и т.д.).

Но нигде в документации не объясняется , как читать таблицу 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";`

Я знаю, что могу использовать цикл для подачи моей таблицы MySQL, но я не знаю, как... Я не знаю в ООП...

Может кто-нибудь мне помочь, пожалуйста?

Ответы

Ответ 1

Первый 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])");
}

Очевидно, что этот код можно улучшить.

Ответ 2

Вот код

$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])");
}

?>

Я пробовал mysql_query ( "INSERT INTO upload (col1, col2) VALUES ($ rows [1], $rows [2])" ); но не работает. Таблица остается пустой