/// <summary>
 ///		Carga el archivo
 /// </summary>
 protected override DataTable LoadFile(bool countRecords, out long totalRecords)
 {
     // Inicializa los argumentos de salida
     if (countRecords)
     {
         totalRecords = new ExcelDataTableReader().CountRows(FileName, 1, true);
     }
     else
     {
         totalRecords = 0;
     }
     // Carga el archivo
     return(new ExcelDataTableReader().LoadFile(FileName, 1, (ActualPage - 1) * RecordsPerPage, RecordsPerPage, true));
 }
        /// <summary>
        ///		Graba el archivo
        /// </summary>
        protected override void SaveFile(LibLogger.Models.Log.BlockLogModel block, string fileName)
        {
            ExcelDataTableReader excelReader = new ExcelDataTableReader();
            long rows = excelReader.CountRows(FileName, 1, true);

            // Graba el archivo
            using (IDataReader reader = excelReader.LoadFile(FileName, 1, 0, rows, true).CreateDataReader())
            {
                using (ParquetWriter writer = new ParquetWriter(fileName))
                {
                    // Log
                    writer.Progress += (sender, args) => block.Progress(System.IO.Path.GetFileName(fileName), args.Records, args.Records + 1);
                    // Escribe el archivo
                    writer.Write(reader);
                }
            }
            // Log
            block.Progress(System.IO.Path.GetFileName(fileName), 0, 0);
            block.Info($"Fin de la grabación del archivo '{fileName}'");
            SolutionViewModel.MainController.Logger.Flush();
        }