Git - это распределенная система контроля версий, а Subversion - централизованная (клиент-серверная) система контроля версий. Они работают по-разному; привыкнуть к этому. Прочитайте мой ответ, объясняющий последствия этой разницы для git-эквивалента вопроса svn status -u
в StackOverflow.
Повторяя себя немного: в централизованной системе контроля версий (например, CVS или Subversion ) почти все команды обрабатываются на сервере и связаны с сетью. Очень немногие команды выполняются локально. Обратите внимание, что для хорошей производительности «svn status» и «svn diff» Subversion сохраняет «нетронутую копию» проверенной версии на клиенте, чтобы не требовать переноса сети для этих общих операций (это означает, что проверка Subversion = 2 x размер рабочего каталога как минимум).
В распределенной системе управления версиями (например, Git, Mercurial или Bazaar), где у вас есть локальная копия (клон) целого хранилища, выполняется почти все команды на клиенте . Очень мало команд требует сетевого подключения к другому репозиторию (к серверу).
Количество команд, которые вы можете выполнять на сервере, ограничено.
Глядя на параметры и пример на PhpExcel - Как вставить ту же строку после строки N? Я бы предположил, что ваши параметры неверны, я думаю, что insertNewRowBefore()
имеет параметры вставки точки и количества строк так что это должно быть 16 и 1 в вашем случае. Также вызов duplicateStyle()
должен быть со строками, которые вы хотите обновить, а не с диапазоном ячеек - я поставил «A15», но это может потребоваться настроить.
$phpExcelObject->getActiveSheet()->insertNewRowBefore(16,1);
$phpExcelObject->getActiveSheet()->duplicateStyle($phpExcelObject->getActiveSheet()->getStyle('A16'), 'A15');
Обновление:
Если вы хотите скопировать данные, я переписал их, чтобы сократить количество повторяющихся битов, но начнем со строки, которую вы хотите копия. Затем он вставляет строку перед этим и затем создает диапазон, который охватывает всю строку, используя getHighestColumn()
, чтобы получить конец строки. Затем он копирует этот диапазон для вас.
$copyFrom= "4";
$activeSheet = $objPHPExcel->getActiveSheet();
$activeSheet->insertNewRowBefore($copyFrom,1);
$activeSheet->duplicateStyle($activeSheet->getStyle('A'.($copyFrom+1)), 'A'.$copyFrom);
$lastColumn = $objPHPExcel->getActiveSheet()->getHighestColumn();
$rangeFrom = 'A'.($copyFrom+1).':'.$lastColumn.($copyFrom+1);
$activeSheet->fromArray($activeSheet->rangeToArray($rangeFrom), null, 'A'.$copyFrom);