diff --git a/appinfo/routes.php b/appinfo/routes.php
index 265e3845a618be9e75f18f4f4f5e77b054357f28..af8b224e3202c5cce0024cf1505aedaa820729f0 100644
--- a/appinfo/routes.php
+++ b/appinfo/routes.php
@@ -19,6 +19,7 @@ return [
         ['name' => 'page#agent_csv', 'url' => '/agent_csv', 'verb' => 'GET'],
         ['name' => 'page#archive_list', 'url' => '/archive_list', 'verb' => 'GET'],
         ['name' => 'page#archive_action', 'url' => '/archive_action', 'verb' => 'POST'],
+        ['name' => 'page#archive_csv', 'url' => '/archive_csv', 'verb' => 'GET'],
         ['name' => 'page#user_list', 'url' => '/user_list', 'verb' => ['GET', 'POST']],
     ]
 ];
diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php
index cb39291017dd5facccf77bd002c692fdc89fe8ce..bcc68e6ea6dc3d7fa6aa2147faa71a676c79d609 100644
--- a/lib/Controller/PageController.php
+++ b/lib/Controller/PageController.php
@@ -318,6 +318,7 @@ class PageController extends Controller {
 
         return array(
             'dematpayslipArchiveList' => $dematpayslipArchiveList,
+            'exportDirUserPath'       => $this->_exportDirUserPath,
             'msgList'                 => $this->_msgList,
             'paramList'               => $paramList
         );
@@ -2468,6 +2469,98 @@ class PageController extends Controller {
         }
     }
 
+    /**
+     * Archive CSV
+     *
+     * @NoAdminRequired
+     * @NoCSRFRequired
+     *
+     * @return TemplateResponse
+     * @throws \Exception
+     */
+    public function archiveCsv() {
+        // verifier l'utilisateur
+        if ($this->userId === $this->_dematpayslipConfigList['user_id']) {
+            $this->_initDematFolders();
+
+            $dematpayslipArchiveMapper = new DematpayslipArchiveMapper(\OC::$server->getDatabaseConnection());
+            $dematpayslipArchiveList = $dematpayslipArchiveMapper->findAllArchived(-1);
+
+            if (!empty($dematpayslipArchiveList)) {
+                $dateTimeNow = new \DateTime('now', \OC::$server->getDateTimeZone()->getTimeZone());
+                $csvFilePath = $this->_exportDirUserPath . DIRECTORY_SEPARATOR . $dateTimeNow->format('Y-m-d_H-i-s') . '_archive';
+                $csvFile = Filesystem::fopen($csvFilePath, 'w+');
+
+                if (!$csvFile) {
+                    $errorMsg = $this->l->t('Ouverture du fichier CSV.');
+                    $this->_msgList['error'][] = $errorMsg;
+                }
+
+                if (count($this->_msgList['error']) <= 0) {
+                    $csvDelimiter = $this->_csvDelimiter;
+                    $csvEnclosure = $this->_csvEnclosure;
+
+                    $csvFields = array();
+                    $csvFields[] = $this->l->t('Chemin');
+                    $csvFields[] = $this->l->t('Siret');
+                    $csvFields[] = $this->l->t('Matricule');
+                    $csvFields[] = $this->l->t('Nom');
+                    $csvFields[] = $this->l->t('Prénom');
+                    $csvFields[] = $this->l->t('Début');
+                    $csvFields[] = $this->l->t('Fin');
+                    $csvFields[] = $this->l->t('Edition');
+                    $csvFields[] = $this->l->t('Archive');
+                    $csvFields[] = $this->l->t('Dernière action');
+
+                    $res = fputcsv($csvFile, $csvFields, $csvDelimiter, $csvEnclosure);
+                    if (!$res) {
+                        $errorMsg = $this->l->t('Ecriture des colonnes dans le fichier CSV.');
+                        $this->_msgList['error'][] = $errorMsg;
+                    }
+
+                    if (count($this->_msgList['error']) <= 0) {
+                        foreach ($dematpayslipArchiveList as $dematpayslipArchive) {
+                            $csvFields = array();
+                            $csvFields[] = $dematpayslipArchive->getFilePath();
+                            $csvFields[] = $dematpayslipArchive->getSiret();
+                            $csvFields[] = $dematpayslipArchive->getMatricule();
+                            $csvFields[] = $dematpayslipArchive->getLastname();
+                            $csvFields[] = $dematpayslipArchive->getFirstname();
+                            $csvFields[] = $dematpayslipArchive->getStartDate();
+                            $csvFields[] = $dematpayslipArchive->getEndDate();
+                            $csvFields[] = $dematpayslipArchive->getEditionDate();
+                            $csvFields[] = $dematpayslipArchive->getPastellIdDocument();
+                            $csvFields[] = $dematpayslipArchive->getPastellLastAction();
+
+                            $res = fputcsv($csvFile, $csvFields, $csvDelimiter, $csvEnclosure);
+                            if (!$res) {
+                                $errorMsg = $this->l->t('Ecriture de la ligne dans le fichier CSV.');
+                                $this->_msgList['error'][] = $errorMsg;
+                                break;
+                            }
+                        }
+                    }
+
+                    $res = fclose($csvFile);
+                    if (!$res) {
+                        $errorMsg = $this->l->t('Fermeture du fichier CSV.');
+                        $this->_msgList['error'][] = $errorMsg;
+                    }
+
+                    if (count($this->_msgList['error']) <= 0) {
+                        // rename (sync files)
+                        $renamed = Filesystem::rename($csvFilePath, $csvFilePath . '.csv');
+                        $this->_msgList['success'][] = $this->l->t('La liste des archives a bien été exporté au format CSV.');
+                    }
+                }
+            }
+
+            return new TemplateResponse('dematpayslip', 'archive_list', $this->_assignArchiveList());
+        } else {
+            return $this->shares();
+        }
+    }
+
     /**
      * Liste des bulletins de paie
      *
diff --git a/templates/content/agent_list.php b/templates/content/agent_list.php
index cfdcacc013004edca71f3b6fcc6c351febbba7cc..dc62598d40bc052a2053c81d3181667e401c2a81 100644
--- a/templates/content/agent_list.php
+++ b/templates/content/agent_list.php
@@ -43,11 +43,13 @@
 ?>
 <div class="row" id="dematpayslip">
     <div class="col-md-12 dematpayslip_block">
+        <?php if (!empty($htmlAlert)) { ?>
+            <div id="dematpayslip_alert"><?php print $htmlAlert; ?></div>
+        <?php } ?>
         <h2><?php p($l->t('Liste des agents')); ?>&nbsp;&nbsp;<a href="<?php echo \OC\URLGenerator::linkToRoute('dematpayslip.page.agent_csv'); ?>" class="button" title="<?php p($l->t('Export CSV')); ?>"><?php p($l->t('CSV')); ?></a></h2>
-        <div id="dematpayslip_alert"><?php print $htmlAlert; ?></div>
 
         <div>
-            <a href="<?php echo \OC\URLGenerator::linkToRoute('files.view.index', ['dir' => $exportDirUserPath]); ?>" class="button" title="<?php p($l->t('Accéder aux exports CSV')); ?>"><?php p($l->t('Accéder aux exports CSV')); ?></a>
+            <a href="<?php echo \OC\URLGenerator::linkToRoute('files.view.index', ['dir' => $exportDirUserPath]); ?>" class="button" target="_blank" title="<?php p($l->t('Accéder aux exports CSV')); ?>"><?php p($l->t('Accéder aux exports CSV')); ?></a>
         </div>
         <br />
 
diff --git a/templates/content/archive_list.php b/templates/content/archive_list.php
index 638c986ec685d2fe2af242981f21c2b765b25bd9..e23475a89174e47566642deb13a6b66efaa9b319 100644
--- a/templates/content/archive_list.php
+++ b/templates/content/archive_list.php
@@ -1,6 +1,7 @@
 <?php
     // assigned
     $dematpayslipArchiveList = (isset($_['dematpayslipArchiveList']) ? $_['dematpayslipArchiveList'] : array());
+    $exportDirUserPath       = (isset($_['exportDirUserPath']) ? $_['exportDirUserPath'] : '');
     $msgList                 = (isset($_['msgList']) ? $_['msgList'] : array());
     $paramList               = (isset($_['paramList']) ? $_['paramList'] : array());
 
@@ -46,7 +47,12 @@
         <?php if (!empty($htmlAlert)) { ?>
             <div id="dematpayslip_alert"><?php print $htmlAlert; ?></div>
         <?php } ?>
-        <h2><?php p($l->t('Liste des archives')); ?>&nbsp</h2>
+        <h2><?php p($l->t('Liste des archives')); ?> &nbsp;<a href="<?php echo \OC\URLGenerator::linkToRoute('dematpayslip.page.archive_csv'); ?>" class="button" title="<?php p($l->t('Export CSV')); ?>"><?php p($l->t('CSV')); ?></a></h2>
+        <br />
+
+        <div>
+            <a href="<?php echo \OC\URLGenerator::linkToRoute('files.view.index', ['dir' => $exportDirUserPath]); ?>" class="button" target="_blank" title="<?php p($l->t('Accéder aux exports CSV')); ?>"><?php p($l->t('Accéder aux exports CSV')); ?></a>
+        </div>
         <br />
 
         <form action="<?php echo \OC\URLGenerator::linkToRoute('dematpayslip.page.archive_action'); ?>" id="demmatpayslip_archive_action_form" name="demmatpayslip_archive_action_form" method="post">