Показать сообщение отдельно
  #1 (permalink)  
Старый 20.10.2015, 11:19
Новичок на форуме
Отправить личное сообщение для Aslero Посмотреть профиль Найти все сообщения от Aslero
 
Регистрация: 20.10.2015
Сообщений: 2

Script объединение ячеек
Добрый день, нужна ваша помощь. В scripte я 0, есть парсер из excel
<?php
	//Функция принимает имя xls файла, считывает его, занося данные ячеек строк в массив, и возвращает этот массыв как результат
	function getXLS($xls){
		include_once 'Classes/PHPExcel/IOFactory.php';
		$objPHPExcel = PHPExcel_IOFactory::load($xls);
		$objPHPExcel->setActiveSheetIndex(3);
		$aSheet = $objPHPExcel->getActiveSheet();
		
		$array = array();//этот массив будет содержать массивы содержащие в себе значения ячеек каждой строки
		//получим итератор строки и пройдемся по нему циклом
		foreach($aSheet->getRowIterator() as $row){
			//получим итератор ячеек текущей строки
			$cellIterator = $row->getCellIterator();
			//пройдемся циклом по ячейкам строки
			$item = array();//этот массив будет содержать значения каждой отдельной строки
			foreach($cellIterator as $cell){
				//заносим значения ячеек одной строки в отдельный массив
				array_push($item, iconv('utf-8', 'cp1251', $cell->getCalculatedValue()));
			}
			//заносим массив со значениями ячеек отдельной строки в "общий массв строк"
			array_push($array, $item);
		}
		return $array;
	}
	
	$xlsData = getXLS('1.xls'); //извлеаем данные из XLS
	





echo '<table cellpadding="6" cellspacing="0" border="1" id="table1">';
foreach ($xlsData as $value) {

  echo "<tr>";
    foreach ($value as $data)
		echo "<td>".$data."</td>";
		
	    echo "</tr>";
	
}
echo "</table>";

?>


как скриптом потом пройтись по таблице
echo '<table cellpadding="6" cellspacing="0" border="1" id="table1">';
foreach ($xlsData as $value) {

  echo "<tr>";
    foreach ($value as $data)
		echo "<td>".$data."</td>";
		
	    echo "</tr>";
	
}
echo "</table>";
и объединить ячейки строки, если первая ячейка имеет значение 1 пример таблицы после выгрузки такой:

<table cellpadding="6" cellspacing="0" border="1" id="table1"><tbody>
<tr><td></td><td>Наименование работы</td><td>ед.изм.</td><td>тариф без учета НДС</td><td>мед-ты</td><td>итого</td></tr>
<tr><td>1</td><td>Эндоскопическая диагностика:</td><td></td><td></td><td></td><td></td></tr>
<tr><td>4.1.3.3.</td><td>Эзофагогастродуоденоскопия</td><td>исслед.</td><td>171900</td><td>11100</td><td>183000</td></tr>

<tr><td>4.3.1.3.</td><td>Взятие  биопсийного материала на гистологическое исследование</td><td>исслед.</td><td>47300</td><td></td><td>47300</td></tr>

<tr><td>4.3.2.3.</td><td>Взятие  биопсийного материала на цитологическое исследование</td><td>исслед.</td><td>47300</td><td></td><td>47300</td></tr>

<tr><td>4.1.5.3.</td><td>Трахеобронхоскопия</td><td>исслед.</td><td>149000</td><td>11800</td><td>160800</td></tr>

<tr><td>1</td><td>Ректоскопия</td><td>исслед.</td><td>93400</td><td>25800</td><td>119200</td></tr>

<tr><td>4.1.11.3.</td><td>Ректосигмоскопия</td><td>исслед.</td><td>171900</td><td>25800</td><td>197700</td><td></td></tr>

<tr><td>4.1.12.3.</td><td>Ректосигмоколоноскопия</td><td>исслед.</td><td>276600</td><td>25800</td><td>302400</td></tr>

<tr></tr><tr></tr><tr></tr><tr></tr><tr></tr></tbody></table>
Ответить с цитированием