Benötigen Sie Hilfe zu diesem Code? Wenn ich die xlsx-Datei importiere, werden die verbundenen Zellen als 2 Zeilen behandelt. Wie kann ich es so ändern, dass col col col in einer Weise ausgewählt wird, dass die verbundenen Zellen aufgeteilt und als einzelne Spalten behandelt werden (zB: A + B + C mit 'some info' -> colA mit 'some info', colB mit 'null/leer', colC mit 'null/leer').xlsx nach mysql importieren mit phpexcel alle Spalten auswählen
der Code:
<?php
@session_start();
//-->
$file = $_SESSION['file'];
$sheet = $_POST['sheet'];
//-->
//--> Include PHPExcel and MySQLi db */
require_once dirname(__FILE__) . '\Classes2\DB.php';
require_once dirname(__FILE__) . '\Classes2\PHPExcel.php';
//--> Create DB object
use DB\MySQLi;
//--> Create new PHPExcel object
$objPHPExcel = PHPExcel_IOFactory::load($file);
$objWorksheet = $objPHPExcel->getSheet($sheet);
$dataArr = array();
foreach ($objWorksheet->getRowIterator() as $row) {
$rowIndex = $row->getRowIndex();
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(True);
foreach ($cellIterator as $cell) {
$colIndex = PHPExcel_Cell::columnIndexFromString($cell->getColumn());
$val = $cell->getValue();
$dataArr[$rowIndex][$colIndex] = $val;
}
}
unset($dataArr[1]);
$hostname = 'localhost';
$username = 'user';
$password = '´pass';
$database = 'base';
$db = new MySQLi($hostname, $username, $password, $database);
foreach($dataArr as $val){
$query = $db->query("INSERT INTO excel SET eid = '" . $db->escape($val['1']) . "',name = '" . $db->escape($val['2']) . "', email = '" . $db->escape($val['3']) . "', dob = '" . $db->escape($val['4']) . "'");
}
?>
Hallo Markus, danke für Ihre Antwort, macht alles Sinn. Nur eine kleine Hilfe ... In meinem Code, wo und/oder was sollte ich ändern, damit es mit Ihrem Beispiel und Ihrer Erklärung funktioniert? Vielen Dank. –