diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index 8f25a38d322c51a1e400344f80412a14b7b277d5..85689edcf7c579aa652962b38534ac7e8e3fe5a0 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -49,6 +49,7 @@ class ImportCsv extends ModeleImports var $separator; + var $file; // Path of file var $handle; // Handle fichier var $cacheconvert=array(); // Array to cache list of value found after a convertion @@ -236,6 +237,18 @@ class ImportCsv extends ModeleImports return $ret; } + + /** + * Return nb of records. File must be closed. + * + * @return int <0 if KO, >=0 if OK + */ + function import_get_nb_of_lines($file) + { + return dol_count_nb_of_line($file); + } + + /** * Input header line from file * diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index 34139820ba872acd96f768d7bccdf6bcd4321f45..a821540f29b9cf8d9d13f7233279c8b21c578c11 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -49,6 +49,7 @@ class Importxlsx extends ModeleImports var $separator; + var $file; // Path of file var $handle; // Handle fichier var $cacheconvert=array(); // Array to cache list of value found after a convertion @@ -276,9 +277,31 @@ class Importxlsx extends ModeleImports $reader = new PHPExcel_Reader_Excel2007(); $this->workbook = $reader->load($file); $this->record = 1; + $this->file = $file; + return $ret; } + + /** + * Return nb of records. File must be closed. + * + * @return int <0 if KO, >=0 if OK + */ + function import_get_nb_of_lines($file) + { + $reader = new PHPExcel_Reader_Excel2007(); + $this->workbook = $reader->load($file); + + $rowcount = $this->workbook->getActiveSheet()->getHighestDataRow(); + + $this->workbook->disconnectWorksheets(); + unset($this->workbook); + + return $rowcount; + } + + /** * Input header line from file * diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index 23d5a61415bf4bf23b2f4258cd60bb2e46155962..eae01880f907d4eb77d246928033a7b2a9bc07af 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -1142,6 +1142,7 @@ if ($step == 5 && $datatoimport) // Load source fields in input file $fieldssource=array(); $result=$obj->import_open_file($conf->import->dir_temp.'/'.$filetoimport,$langs); + if ($result >= 0) { // Read first line @@ -1156,8 +1157,7 @@ if ($step == 5 && $datatoimport) $obj->import_close_file(); } - // TODO, remove this, since it only works for csv - $nboflines=dol_count_nb_of_line($conf->import->dir_temp.'/'.$filetoimport); + $nboflines=$obj->import_get_nb_of_lines($conf->import->dir_temp.'/'.$filetoimport); $param='&leftmenu=import&format='.$format.'&datatoimport='.$datatoimport.'&filetoimport='.urlencode($filetoimport).'&nboflines='.$nboflines.'&separator='.urlencode($separator).'&enclosure='.urlencode($enclosure); $param2 = $param; // $param2 = $param without excludefirstline and endatlinenb