Пример #1
0
        public void GivenNonExistentPath_WhenLoadingExcelData_ItThrows()
        {
            var provider   = new SheetProvider(new ExcelAdapter());
            var excelRange = new ExcelRange(new ExcelCell("A", 1), new ExcelCell("B", 3));

            Action result = () => provider.GetFromPath(@"/some/non/existing/file", "my sheet", excelRange);

            result.Should().Throw <DirectoryNotFoundException>();
        }
Пример #2
0
 public ReadSCFile(IMapper mapper, IAppRepository <string> appRepository)
 {
     exSheetMapper = new SheetMapper()
                     .AddSheetToObjectConfig(new SlickConfig());
     excelSheetAdapter   = new SheetProvider();
     slickChartFirmNames = new List <SlickChartFirmNames>();
     this.mapper         = mapper;
     this.appRepository  = appRepository;
 }
Пример #3
0
        public void GivenExcelFileOnDisk_WhenLoadingExcelData_SheetContainsData()
        {
            var provider   = new SheetProvider(new ExcelAdapter());
            var excelRange = new ExcelRange(new ExcelCell("A", 1), new ExcelCell("B", 3));

            var sheet = provider.GetFromPath(TwoColumnsTwoRowsWithHeadersFilePath, "my sheet", excelRange);

            sheet.Rows.Count.Should().Be(3);
            sheet.Rows.First().Cells.Count.Should().Be(2);
        }
Пример #4
0
        public void GivenInvalidBase64EncodedString_WhenLoadingCsvData_ItThrows()
        {
            var base64EncodedCsv = "some invalid base64encoded string";

            var provider   = new SheetProvider(new ExcelAdapter());
            var excelRange = new ExcelRange(new ExcelCell("A", 1), new ExcelCell("A", 2));

            Action result = () => provider.GetFromBase64Encoded(base64EncodedCsv, "my sheet", excelRange);

            result.Should().Throw <FormatException>();
        }
Пример #5
0
        public void GivenBase64EncodedString_WhenLoadingExcelData_SheetContainsData()
        {
            var excelFileBytes         = File.ReadAllBytes(TwoColumnsTwoRowsWithHeadersFilePath);
            var excelFilebase64Encoded = Convert.ToBase64String(excelFileBytes);;

            var provider   = new SheetProvider(new ExcelAdapter());
            var excelRange = new ExcelRange(new ExcelCell("A", 1), new ExcelCell("B", 3));

            var excelData = provider.GetFromBase64Encoded(excelFilebase64Encoded, "my sheet", excelRange);

            excelData.Rows.Count.Should().Be(3);
            excelData.Rows.First().Cells.Count.Should().Be(2);
        }
Пример #6
0
        public void ExportRandomColBook()
        {
            var file1       = new FileInfo("./files/xlsx/查岗12_05.xlsx");
            var outFilePath = "./files/xlsx/查岗_test1.xlsx";

            if (File.Exists(outFilePath))
            {
                File.Delete(outFilePath);
            }
            var outFile = new FileInfo(outFilePath);

            int   targetCol        = 1;
            int   targetSheetIndex = 1;
            Sheet sheet            = null;
            bool  headTitle        = false;

            string        colName  = null;
            List <object> dataList = new List <object>();

            using (ExcelPackage package = new ExcelPackage(file1))
            {
                var worksheet = package.Workbook.Worksheets[targetSheetIndex];

                var sp = new SheetProvider(worksheet, headTitle);
                sheet    = sp.Get(targetCol);
                dataList = sheet.Rows.Select(t => t.Identity).ToList();
                if (headTitle)
                {
                    colName = sheet.Columns[targetCol].Name;
                }
            }

            using (ExcelPackage package = new ExcelPackage(outFile))
            {
                ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
                int            length    = dataList.Count,
                               rowIndex  = 1;

                if (headTitle)
                {
                    worksheet.Cells[rowIndex, 1].Value = sheet.Columns[targetCol - 1].Name;
                    rowIndex++;
                }

                for (int i = 1; i <= length; i++, rowIndex++)
                {
                    worksheet.Cells[rowIndex, 1].Value = GetRandomFromList(dataList);
                }
                package.Save();
            }
        }
Пример #7
0
        public void GivenAStream_WhenLoadingCsvData_SheetContainsData()
        {
            using (var fileStream = new FileStream(TwoColumnsTwoRowsWithHeadersFilePath, FileMode.Open))
            {
                using (var sr = new StreamReader(fileStream, Encoding.UTF8, false, 1024, true))
                {
                    var provider   = new SheetProvider(new ExcelAdapter());
                    var excelRange = new ExcelRange(new ExcelCell("A", 1), new ExcelCell("B", 3));

                    var csvData = provider.GetFromStream(sr.BaseStream, "my sheet", excelRange);

                    csvData.Rows.Count.Should().Be(3);
                    csvData.Rows.First().Cells.Count.Should().Be(2);
                }
            }
        }
Пример #8
0
        public void GivenALargeNumberOfRows_WhenLoadingDataWithoutStopping_ReturnsMaxNumberOfRows(bool stopOnEmptyRow, int expectedCount)
        {
            int max_number_of_excel_rows = 1048576;

            using (var fileStream = new FileStream(TwoColumnsTwoRowsWithHeadersFilePath, FileMode.Open))
            {
                using (var sr = new StreamReader(fileStream, Encoding.UTF8, false, 1024, true))
                {
                    var provider   = new SheetProvider(new ExcelAdapter());
                    var excelRange = new ExcelRange(new ExcelCell("A", 1), new ExcelCell("B", max_number_of_excel_rows));

                    var csvData = provider.GetFromStream(sr.BaseStream, "my sheet", excelRange, stopOnEmptyRow);

                    csvData.Rows.Count.Should().Be(expectedCount);
                    csvData.Rows.First().Cells.Count.Should().Be(2);
                }
            }
        }