@GPK1929

Как реализовать парсинг Exel?

Добрый день сообщество, возникла необходимость реализации експорта/импорта БД в/из Exel, начал искать и нашел библиотеку PHPExcel, далее попытался с ней разобраться в контекте поставленной задачи, и тут возникла проблема задача состоит в следующем есть БД с таблицами products и options_product и необходимо занести обе таблицы на один лист EXEL при этом они должны быть в перемешку, строка из таблицы products далее несколько options_product, так вот можно ли это реализовать чтоб в последствии изменив к примеру цены у продукта обратно загрузить на сайт? Просто я когда начал разбираться сложилось впечатление что каждая таблица БД должна создается на отдельном листе и мешать таблицы на одном листе нельзя? Может кто сталкивался с подобной ситуацией и подскажет, может другую библиотеку следует использовать? Или я что-то не правильно понял.
  • Вопрос задан
  • 346 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Hakhagmon
Вот давно делал, может пригодится

class CSV {
    //private $_csv_file = null;
	public $_csv_file = null;
    public function __construct($csv_file) {
        if (file_exists($csv_file)) { 
            $this->_csv_file = $csv_file; 
        }
        else throw new Exception("Файл \"$csv_file\" не найден"); 
    }
    public function getCSV() {
        $handle = fopen($this->_csv_file, "r");
        $array_line_full = array();
        while (($line = fgetcsv($handle, 0, ";")) !== FALSE) { 
            $array_line_full[] = $line; 
        }
        fclose($handle); 
        return $array_line_full;
    }
}

try {
    $csv = new CSV("upload.csv"); 
	
    echo "<h2>Содержимое файла " . $csv->_csv_file . "</h2>";
    $get_csv = $csv->getCSV();
	$i = 1;
    foreach ($get_csv as $value) {
        
		echo '<form id="form' . $i . '" name="form' . $i . '" action="/admin.php?mod=csvupload-action" method="post">';
		echo '<div><label for="f0">Название:</label><input type="text" name="f0" value="' . $value[0] . '"></div>';		
        echo '<div><label for="f1">Категория:</label><input type="text" name="f1" value="' . $value[1] . '"></div>';
        echo '<div><label for="f2">Вид образовательной программы:</label><input type="text" name="f2" value="' . $value[2] . '"></div>';		
		echo '<div><label for="f3">Дата События:</label><input type="text" name="f3" value="' . $value[3] . '"></div>';
		echo '<div><label for="f4">Конец События:</label><input type="text" name="f4" value="' . $value[4] . '"></div>';
		echo '<div><label for="f5">Краткое описание (shortstory):</label><!--textarea rows="10" name="f5">' . htmlspecialchars($value[5]) . '</textarea--><input type="text" name="f5" value="' . htmlspecialchars($value[5]) . '"></div>';
		echo '<div><label for="f6">Полное описание (fullstory):</label><!--textarea rows="10" name="f6">' . htmlspecialchars($value[6]) . '</textarea--><input type="text" name="f6" value="' . htmlspecialchars($value[6]) . '"></div>';
		echo '<div><label for="f8">Форма обучения:</label><input type="text" name="f8" value="' . $value[8] . '"></div>';
		echo '<div><label for="f9">Направление:</label><input type="text" name="f9" value="' . $value[9] . '"></div>';
		echo '<div><label for="f10">Стоимость:</label><input type="text" name="f10" value="' . $value[10] . '"></div>';
		echo '<div><label for="f11">Продолжительность  ч.:</label><input type="text" name="f11" value="' . $value[11] . '"></div>';
		echo '<div><label for="f12">Сроки обучения д.:</label><input type="text" name="f12" value="' . $value[12] . '"></div>';
		echo '<div><label for="f13">Время проведения занятий:</label><input type="text" name="f13" value="' . $value[13] . '"></div>';
		echo '<div><label for="f14">Телефон:</label><input type="text" name="f14" value="' . $value[14] . '"></div>';
		echo '<div><label for="f15">E-mail:</label><input type="text" name="f15" value="' . $value[15] . '"></div>';
		echo '<div><label for="f16">Слушатели:</label><input type="text" name="f16" value="' . $value[16] . '"></div>';
		echo '<div><label for="f17">Место обучения:</label><input type="text" name="f17" value="' . $value[17] . '"></div>';
		echo '<div><label for="f18">Адрес:</label><input type="text" name="f18" value="' . $value[18] . '"></div>';
		echo '<div><label for="f19">Выпускной документ:</label><input type="text" name="f19" value="' . $value[19] . '"></div>';
		echo '<div><label for="f20">Учебный план (ссылка):</label><input type="text" name="f20" value="' . $value[20] . '"></div>';
		echo '<button>Сохранить</button></form>';

		$i++;
    }
}
catch (Exception $e) {
    echo "Ошибка: " . $e->getMessage();
}

echofooter();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы