Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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>
Ответить с цитированием
  #2 (permalink)  
Старый 20.10.2015, 11:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Вообще-то нужен один цикл, без вложенного. И может объединить ячейки в строке таблицы, а не строки в ячейке?

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

все зависит от того как поставить ударение в слове "строки", да мне нужно объединить ячейки в строке
Ответить с цитированием
  #4 (permalink)  
Старый 20.10.2015, 13:29
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Aslero
мне нужно объединить ячейки в строке
Не совсем понятно зачем сначала создать проблему... А потом героически ее решать!
Почему сразу не сделать нормальную таблицу?
Ответить с цитированием
  #5 (permalink)  
Старый 20.10.2015, 13:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

<td>1</td><td>Эндоскопическая диагностика:</td> - здесь две ячейки

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

Как объединять - последнюю с пустыми, если есть пустые за ней?
Могут ли быть в строке пустые ячейки между заполненными?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery навигация, утечка памяти Foxeh AJAX и COMET 8 19.04.2015 16:53
Событие ready и теги script FanAizu jQuery 13 17.02.2013 13:03
Не выводится содержимое ячеек таблицы SER Events/DOM/Window 2 23.06.2011 17:48
Почему в FF не исполняется клонированный тэг script? NT Man Firefox/Mozilla 0 15.11.2009 16:00
HELP: Java Script Error: “text” is undefined Aram Khachaturyan Общие вопросы Javascript 2 11.04.2008 16:57