isotonicq

Untitled

Apr 22nd, 2021
647
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System.Collections.Generic;
  2. using System.IO;
  3. using System.Linq;
  4. using BST.ExcelImporter.Interfaces;
  5. using OfficeOpenXml;
  6. using ExcelRow = BST.ExcelImporter.Models.ExcelRow;
  7. using BST.ExcelImporter.Extensions;
  8.  
  9. namespace BST.ExcelImporter.Controllers
  10. {
  11.     public sealed class ReadFileController : IReadFileController
  12.     {
  13.         //Private
  14.         private readonly FileInfo _file;
  15.  
  16.         //CTOR
  17.         public ReadFileController(string path)
  18.         {
  19.             _file = new FileInfo(path);
  20.         }
  21.        
  22.         //Public
  23.         public ICollection<ExcelRow> Read()
  24.         {
  25.             //Prepare variables
  26.             ICollection<ExcelRow> result = new List<ExcelRow>();
  27.             List<string> headers = new List<string>();
  28.  
  29.             //Read file
  30.             using (ExcelPackage package = new ExcelPackage(_file))
  31.             {
  32.                 //Init excel values
  33.                 ExcelWorksheet worksheet = package.Workbook.Worksheets.First();
  34.                 ExcelAddressBase dimensions = worksheet.GetValuedDimension();
  35.                
  36.                 int colCount = dimensions.End.Column;
  37.                 int rowCount = dimensions.End.Row;
  38.  
  39.                 //Get headers;
  40.                 for (int y = 1; y <= colCount; y++)
  41.                 {
  42.                     headers.Add(worksheet.Cells[1, y].Value.ToString());
  43.                 }
  44.                
  45.                 //Get values
  46.                 for (int x = 2; x <= rowCount; x++)
  47.                 {
  48.                     ExcelRow row = new ExcelRow();
  49.                    
  50.                     for (int y = 1; y <= colCount; y++)
  51.                     {
  52.                         row.Fields.Add(headers[y - 1], worksheet.Cells[x, y]);
  53.                     }
  54.                    
  55.                     result.Add(row);
  56.                 }
  57.             }
  58.            
  59.             //Return
  60.             return result;
  61.         }
  62.     }
  63. }
  64.  
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×