Beispiel #1
0
        public static MemoryStream Export <TData>(ExportConfiguration <TData> exportConfiguration, List <TData> data)
        {
            using (var pck = new ExcelPackage())
            {
                // Create the worksheet
                var sheet = pck.Workbook.Worksheets.Add(exportConfiguration.FileName);

                // Execute the func
                var headers = exportConfiguration.DataMapper.Keys.ToList();

                // Set columns headers
                for (var i = 0; i < headers.Count; i++)
                {
                    sheet.Cells[1, i + 1].Value = headers[i];
                }

                // Fill the data
                if (data.Any())
                {
                    var loadedData = data.Select(x => exportConfiguration.DataMapper.Values.Select(y => y(x)).ToArray()).ToList();
                    sheet.Cells["A2"].LoadFromArrays(loadedData);
                }

                // Create the file stream
                var stream = new MemoryStream(EpplusCsvConverter.ConvertToCsv(pck))
                {
                    Position = 0
                };

                return(stream);
            }
        }
Beispiel #2
0
        private void btnMakeCsv_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Title       = "Open XSLX Master";
            ofd.Multiselect = true;

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                foreach (string excelPath in ofd.FileNames)
                {
                    label1.Text = Path.GetFileNameWithoutExtension(excelPath);
                    savePath    = Path.GetDirectoryName(excelPath);
                    string folderName = Path.GetFileNameWithoutExtension(excelPath);

                    using (var package = new ExcelPackage(new FileInfo(excelPath)))
                    {
                        if (!Directory.Exists(savePath + "\\" + folderName))
                        {
                            System.IO.Directory.CreateDirectory(savePath + "\\" + folderName);
                        }
                        int sheetsNumber = package.Workbook.Worksheets.Count;

                        for (int i = 1; i <= sheetsNumber; i++)
                        {
                            string TargetFile = savePath + "\\" + folderName + "\\" + package.Workbook.Worksheets[i].Name + ".csv";
                            if (System.IO.File.Exists(TargetFile))
                            {
                                System.IO.File.Delete(TargetFile);
                            }
                            EpplusCsvConverter.ConvertToCsv(package, TargetFile, i);
                        }
                    }
                    //move file to folder
                    System.IO.File.Move(excelPath, (savePath + "\\" + folderName + "\\" + folderName + ".xlsx"));
                }
            }
        }