Чтение листа 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])" ); но не работает. Таблица остается пустой