PHPExcel - копировать диапазон столбцов

Git - это распределенная система контроля версий, а Subversion - централизованная (клиент-серверная) система контроля версий. Они работают по-разному; привыкнуть к этому. Прочитайте мой ответ, объясняющий последствия этой разницы для git-эквивалента вопроса svn status -u в StackOverflow.

Повторяя себя немного: в централизованной системе контроля версий (например, CVS или Subversion ) почти все команды обрабатываются на сервере и связаны с сетью. Очень немногие команды выполняются локально. Обратите внимание, что для хорошей производительности «svn status» и «svn diff» Subversion сохраняет «нетронутую копию» проверенной версии на клиенте, чтобы не требовать переноса сети для этих общих операций (это означает, что проверка Subversion = 2 x размер рабочего каталога как минимум).

В распределенной системе управления версиями (например, Git, Mercurial или Bazaar), где у вас есть локальная копия (клон) целого хранилища, выполняется почти все команды на клиенте . Очень мало команд требует сетевого подключения к другому репозиторию (к серверу).

Количество команд, которые вы можете выполнять на сервере, ограничено.

  • Вы можете перечислить все ссылки на удаленном компьютере с помощью « git ls-remote & lt; URL & gt;».
  • Вы можете получить моментальный снимок (часть) репозитория (если удаленный сервер включил его) с помощью « git archive --remote = & lt; URL & gt; HEAD".
  • Вы можете клонировать только несколько последних коммитов (так называемый «мелкий клон») с « git clone --depth = 1 & lt; URL & gt;».
  • Если сервер предоставляет git веб-интерфейс в репозиторий, вы можете использовать его для просмотра.

6
задан htshame 18 January 2019 в 14:37
поделиться

1 ответ

Глядя на параметры и пример на 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);
0
ответ дан Nigel Ren 18 January 2019 в 14:37
поделиться
Другие вопросы по тегам:

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