Я столкнулся с проблемой при создании древовидной структуры с использованием следующей таблицы Excel.
Я хотел сохранить эти элементы ячейки как категории. Есть много-много отношений между каждой категорией. Это означает, что каждая родительская категория имеет много дочерних категорий, а также каждая дочерняя категория имеет много родительских категорий.
Я собираюсь использовать PHP как язык, но это не важно.
Если есть кто-то, кто имел подобный опыт или какую-либо идею обходить и хранить категории в виде дерева (отношения родитель-потомок), это будет очень полезно для меня.
// ============== Update ===================
Количество столбцов может быть разным. Это означает, что существует множество файлов Excel, и количество их заголовков и имя заголовка могут отличаться. Поэтому мне нужно найти общее решение для всех листов.
Благодарю.
Начните с создания полностью заполненной таблицы, например:
Затем выберите ячейку A2 и применить Условное форматирование сделать ячейку «невидимой», если она имеет то же значение, что и ячейка выше:
и копировать они форматируют как вниз, так и поперек.
Теперь у вас есть нужный визуальный эффект, и вы можете обрабатывать таблицу стандартными функциями Excel.
Я решил проблему.
Динамически создавайте переменные для каждого столбца, используя количество столбцов. Это только для первого ряда листа.
if($row->getRowIndex()==1){
//Create category variables
for($cat_var_count =1; $cat_var_count < $i; $cat_var_count++){
${$category_header."_".$cat_var_count} = "";
}
}
Сохраните данные каждой ячейки в соответствующей переменной
$ {$ category_header. «_». $ i} = $ last_inserted_row_category_id;
Проверьте, пустые данные ячейки или нет
Получить данные родительской переменной, уменьшив номер элемента текущей ячейки на единицу. Это предыдущие данные ячейки. Не обновляйте соответствующую переменную, если данные столбца пусты.
$model_cat_parent->parent_id = ${$category_header."_".($i-1)};
$model_cat_parent->child_id = $last_inserted_row_category_id;