Inheritance: IExportProject
コード例 #1
0
ファイル: Main.cs プロジェクト: GNOME/longomatch
        public static void Main(string[] args)
        {
            /* Start DB services */
            Core.Init();
            var db = new DataBase(Path.Combine(Config.DBDir(),Constants.DB_FILE));
            Project p = db.GetProject(db.GetAllProjects()[0].UUID);

            ExcelExporter ee = new ExcelExporter();
            ee.ExportProject(p,  "/home/andoni/test.xls");
        }
コード例 #2
0
 public void Test()
 {
     var models = GetModels();
     var exporter = new ExcelExporter();
     var bytes = exporter.ObjectToExcelBytes(models);
     var path = GetFilePath("text.xls");
     Console.WriteLine(path);
     File.WriteAllBytes(path, bytes);
     Assert.IsTrue(File.Exists(path));
     var importer = new ExcelImporter();
     var result = importer.ExcelToObject<ReportModel>(path);
     Assert.AreEqual(models.Count, result.Count());
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: danmcilroy/Excel-Exporter
        static void Main(string[] args)
        {
            IList<Address> addresses = new List<Address> { new Address
                                                               {
                                                                   HouseNumber = "74", RoadName = "Ellenborough Close", City = "Bishops Stortford", County = "Herts", PostCode = "CM23 4HT", Country = "England"
                                                               },
                                                               new Address
                                                               {
                                                                   HouseNumber = "70", RoadName = "Hadham Road", City = "Bishops Stortford", County = "Herts", PostCode = "CM23 2QY", Country = "England"
                                                               }
            };

            ExcelExporter<Address> excelExporter = new ExcelExporter<Address>();
            XDocument xdoc = excelExporter.GetExcelWorkbook(addresses);

            Console.WriteLine(xdoc.ToString());
        }
コード例 #4
0
ファイル: frmOT.cs プロジェクト: hkiaipc/fnq
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ucotCondition1_ExportEvent(object sender, EventArgs e)
        {
            if (ExcelExporter.CanExport(dataGridView1))
            {
                string f = ExcelExporter.GenerateFileName();
                ExcelExporter ee = new ExcelExporter(f, DataGridViewFormatters.DefaultDataFormatterCollection);
                ee.Export(dataGridView1);

                ProcessStartInfo si = new ProcessStartInfo(f);
                si.ErrorDialog = true;
                Process.Start(si);
            }
            else
            {
                string s = string.Format(strings.RowCountOutOfRange, ExcelExporter.MaxRowCount);
                NUnit.UiKit.UserMessage.DisplayFailure(s);
            }
        }
コード例 #5
0
        private void Export()
        {
            //throw new NotImplementedException();
            if (!ExcelExporter.CanExport(this.dataGridView1))
            {
                string s = string.Format("数据行数不能大于 {0}", ExcelExporter.MaxRowCount);
                NUnit.UiKit.UserMessage.DisplayFailure(s);
                return;
            }

                string f = ExcelExporter.GenerateFileName();
                ExcelExporter ee = new ExcelExporter(f, DataGridViewFormatters.DefaultDataFormatterCollection);
                ee.Export(dataGridView1);

                ProcessStartInfo si = new ProcessStartInfo(f);
                si.ErrorDialog = true;
                Process.Start(si);
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: GAlex7/TA
        public static void Main()
        {
            DataExporter exporter = null;

            // Lets export the data to Excel file
            exporter = new ExcelExporter();
            exporter.ExportFormatedData();

            Console.WriteLine();

            // Lets export the data to PDF file
            exporter = new PDFExporter();
            exporter.ExportFormatedData();

            Console.WriteLine();

            // Lets export the data to Word file
            exporter = new WordExporter();
            exporter.ExportFormatedData();
        }
コード例 #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            IList<Address> addresses = new List<Address> { new Address
                                                               {
                                                                   HouseNumber = "74", RoadName = "Ellenborough Close", City = "Bishops Stortford", County = "Herts", PostCode = "CM23 4HT", Country = "England"
                                                               },
                                                               new Address
                                                               {
                                                                   HouseNumber = "70", RoadName = "Hadham Road", City = "Bishops Stortford", County = "Herts", PostCode = "CM23 2QY", Country = "England"
                                                               }
            };

            var excelExporter = new ExcelExporter<Address>();
            excelExporter.AddWorksheet("Addresses", addresses, true);
            excelExporter.AddWorksheet("Addresses1", addresses, true);
            excelExporter.AddWorksheet("Addresses2", addresses, false);

            excelExporter.ToExcel("test-addresses", HttpContext.Current.Response);
            excelExporter.SaveToFile(@"F:\Projects\Net\CommonLibrary\Test Data\Exported Data\","test-addresses");
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: bchristie/ExcelExporter
        static void Main(string[] args)
        {
            List<ExampleObject> examples = new List<ExampleObject>();
            Random random = new Random(DateTime.Now.Millisecond);
            String[] itemNames = new[]{ "Apple", "Banana", "Cherry", "Grapefruit", "Kiwi", "Lime", "Mango", "Orange" };
            for (Int32 i = 0; i < itemNames.Length; i++)
            {
                examples.Add(new ExampleObject
                {
                    ItemNumber = (i + 1).ToString("D3"),
                    Description = itemNames[i],
                    Quantity = random.Next(1,10),
                    UnitPrice = random.NextDouble() * 10,
                    LastPurchased = DateTime.Now.AddDays(random.Next(-5,5))
                });
            }

            ExcelExporter exporter = new ExcelExporter();
            exporter.ExportToSheet<ExampleObject>(examples, "Examples");

            examples.Add(new ExampleObject { ItemNumber = "999", Description = "Last Object", Quantity = 99, UnitPrice = 999.99, LastPurchased = DateTime.Now.AddDays(99) });
            exporter.ExportToSheet<ExampleObject>(examples, "Examples (+1)");
        }
コード例 #9
0
        public async Task DynamicExport_Test()
        {
            IExporter exporter = new ExcelExporter();
            var       filePath = Path.Combine(Directory.GetCurrentDirectory(), nameof(DynamicExport_Test) + ".xlsx");

            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }

            var exportDatas = GenFu.GenFu.ListOf <ExportTestDataWithAttrs>(1000);
            var dt          = exportDatas.ToDataTable();
            var result      = await exporter.Export <ExportTestDataWithAttrs>(filePath, dt);

            result.ShouldNotBeNull();
            File.Exists(filePath).ShouldBeTrue();
            using (var pck = new ExcelPackage(new FileInfo(filePath)))
            {
                //检查转换结果
                var sheet = pck.Workbook.Worksheets.First();
                sheet.Dimension.Columns.ShouldBe(9);
            }
        }
コード例 #10
0
        public async Task AttrExportWithAutoCenterData_Test()
        {
            IExporter exporter = new ExcelExporter();

            var filePath = GetTestFilePath($"{nameof(AttrExportWithAutoCenterData_Test)}.xlsx");

            DeleteFile(filePath);

            var result = await exporter.Export(filePath, GenFu.GenFu.ListOf <ExportTestDataWithAutoCenter>());

            result.ShouldNotBeNull();
            File.Exists(filePath).ShouldBeTrue();
            using (var pck = new ExcelPackage(new FileInfo(filePath)))
            {
                pck.Workbook.Worksheets.Count.ShouldBe(1);
                pck.Workbook.Worksheets.First().Cells[pck.Workbook.Worksheets.First().Dimension.Address].Rows
                .ShouldBe(26);
                pck.Workbook.Worksheets.First()
                .Cells[1, 1, 10, 2].Style.HorizontalAlignment.ShouldBe(ExcelHorizontalAlignment.Center);
                pck.Workbook.Worksheets.First()
                .Cells[2, 2, 10, 2].Style.HorizontalAlignment.ShouldBe(ExcelHorizontalAlignment.Center);
            }
        }
コード例 #11
0
        public async Task ExportHeaderAsByteArrayWithItems_Test()
        {
            IExcelExporter exporter = new ExcelExporter();

            var filePath = GetTestFilePath($"{nameof(ExportHeaderAsByteArrayWithItems_Test)}.xlsx");

            DeleteFile(filePath);
            var arr       = new[] { "Name1", "Name2", "Name3", "Name4", "Name5", "Name6" };
            var sheetName = "Test";
            var result    = await exporter.ExportHeaderAsByteArray(arr, sheetName);

            result.ShouldNotBeNull();
            result.Length.ShouldBeGreaterThan(0);
            result.ToExcelExportFileInfo(filePath);
            File.Exists(filePath).ShouldBeTrue();
            using (var pck = new ExcelPackage(new FileInfo(filePath)))
            {
                //检查转换结果
                var sheet = pck.Workbook.Worksheets.First();
                sheet.Name.ShouldBe(sheetName);
                sheet.Dimension.Columns.ShouldBe(arr.Length);
            }
        }
コード例 #12
0
        public async Task ExportHeaderAsByteArray_Test()
        {
            IExporter exporter = new ExcelExporter();

            var filePath = GetTestFilePath($"{nameof(ExportHeaderAsByteArray_Test)}.xlsx");

            DeleteFile(filePath);

            var result = await exporter.ExportHeaderAsByteArray(GenFu.GenFu.New <ExportTestDataWithAttrs>());

            result.ShouldNotBeNull();
            result.Length.ShouldBeGreaterThan(0);
            result.ToExcelExportFileInfo(filePath);
            File.Exists(filePath).ShouldBeTrue();

            using (var pck = new ExcelPackage(new FileInfo(filePath)))
            {
                //检查转换结果
                var sheet = pck.Workbook.Worksheets.First();
                sheet.Name.ShouldBe("测试");
                sheet.Dimension.Columns.ShouldBe(9);
            }
        }
コード例 #13
0
        public async Task ExprotSeparateByColumn_Test()
        {
            var exporter = new ExcelExporter();
            var filePath = GetTestFilePath($"{nameof(ExprotSeparateByColumn_Test)}.xlsx");

            DeleteFile(filePath);

            var list1 = GenFu.GenFu.ListOf <ExportTestDataWithAttrs>();

            var list2 = GenFu.GenFu.ListOf <ExportTestDataWithSplitSheet>(30);

            var result = await exporter.Append(list1).SeparateByColumn().Append(list2)
                         .SeparateByColumn()
                         .Append(list2).ExportAppendData(filePath);

            result.ShouldNotBeNull();

            File.Exists(filePath).ShouldBeTrue();
            using (var pck = new ExcelPackage(new FileInfo(filePath)))
            {
                pck.Workbook.Worksheets.Count.ShouldBe(1);
            }
        }
コード例 #14
0
        public async Task Export10000ByTemplate_Test()
        {
            //模板路径
            var tplPath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "ExportTemplates",
                                       "Export10000ByTemplate_Test.xlsx");
            //创建Excel导出对象
            IExportFileByTemplate exporter = new ExcelExporter();
            //导出路径
            var filePath = Path.Combine(Directory.GetCurrentDirectory(), nameof(Export10000ByTemplate_Test) + ".xlsx");

            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }

            var books = GenFu.GenFu.ListOf <BookInfo>(10000);
            //根据模板导出
            await exporter.ExportByTemplate(filePath,
                                            new TextbookOrderInfo("湖南心莱信息科技有限公司", "湖南长沙岳麓区", "雪雁", "1367197xxxx", null,
                                                                  DateTime.Now.ToLongDateString(), "https://docs.microsoft.com/en-us/media/microsoft-logo-dark.png",
                                                                  books),
                                            tplPath);
        }
コード例 #15
0
        public IResult ExportExcel()
        {
            Update();
            var columns = new[] {
                "№ п/п",
                "Товар",
                "Производитель",
                "Серия",
                "Срок годности",
                "Штрихкод",
                "Кол-во",
                "Цена розничная с НДС",
                "Сумма розничная с НДС",
            };

            var book  = new HSSFWorkbook();
            var sheet = book.CreateSheet("Экспорт");
            var row   = 0;

            ExcelExporter.WriteRow(sheet, columns, row++);

            var rows = Lines.Select((o, i) => new object[] {
                o.Id,
                o.Product,
                o.Producer,
                o.SerialNumber,
                o.Period,
                o.Barcode,
                o.Quantity,
                o.RetailCost,
                o.RetailSum,
            });

            ExcelExporter.WriteRows(sheet, rows, row);

            return(ExcelExporter.Export(book));
        }
コード例 #16
0
        public async Task DynamicExportWithJObjectByTemplate_Test()
        {
            string json = @"{
              'Company': '雪雁',
              'Address': '湖南长沙',
              'Contact': '雪雁',
              'Tel': '136xxx',
              'BookInfos': [
                {'No':'a1','RowNo':1,'Name':'Docker+Kubernetes应用开发与快速上云','EditorInChief':'李文强','PublishingHouse':'机械工业出版社','Price':65,'PurchaseQuantity':10000,'Cover':'https://img9.doubanio.com/view/ark_article_cover/retina/public/135025435.jpg?v=1585121965','Remark':'备注'},
                {'No':'a2','RowNo':2,'Name':'Docker+Kubernetes应用开发与快速上云','EditorInChief':'李文强','PublishingHouse':'机械工业出版社','Price':65,'PurchaseQuantity':10000,'Cover':'https://img9.doubanio.com/view/ark_article_cover/retina/public/135025435.jpg?v=1585121965','Remark':'备注'}
              ]
            }";
            var    jobj = JObject.Parse(json);
            //模板路径
            var tplPath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "ExportTemplates",
                                       "DynamicExportTpl.xlsx");
            //创建Excel导出对象
            IExportFileByTemplate exporter = new ExcelExporter();
            //导出路径
            var filePath = Path.Combine(Directory.GetCurrentDirectory(), nameof(DynamicExportWithJObjectByTemplate_Test) + ".xlsx");

            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }

            //根据模板导出
            await exporter.ExportByTemplate(filePath, jobj, tplPath);

            using (var pck = new ExcelPackage(new FileInfo(filePath)))
            {
                //检查转换结果
                var sheet = pck.Workbook.Worksheets.First();
                //确保所有的转换均已完成
                sheet.Cells[sheet.Dimension.Address].Any(p => p.Text.Contains("{{")).ShouldBeFalse();
            }
        }
コード例 #17
0
        public List <CashBook> CorrectCashInHands(AprajitaRetailsContext db, DateTime date, string fileName, bool IsDay = false)
        {
            List <CashBook> cashBookList;

            if (IsDay)
            {
                cashBookList = GetDailyCashBook(db, date);
            }
            else
            {
                cashBookList = GetMontlyCashBook(db, date);
            }

            ExcelExporter.CashBookExporter(fileName, cashBookList, "firstCashBook");

            List <CashInHand> InHandList = CreateCashInHands(db, cashBookList);

            ExcelExporter.CashInHandExporter(fileName, InHandList, "New CashInhand");

            InHandList = CashInHandCorrectionForMonth(db, date);

            ExcelExporter.CashInHandExporter(fileName, InHandList, "Updated CashInhand");
            return(cashBookList);
        }
コード例 #18
0
        /// <summary>
        /// 导出Excel
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public virtual async Task <FileDto> ToExcel(TGetAllInput input)
        {
            CheckPermission(ExportPermissionName);
            List <TExportDto> exportData = null;

            using (UnitOfWorkManager.Current.DisableFilter(AbpDataFilters.SoftDelete))
            {
                var query   = CreateFilteredQuery(input);
                var results = await query
                              .OrderBy(input.Sorting)
                              .ToListAsync();

                exportData = results.MapTo <List <TExportDto> >();
                if (exportData.Count == 0)
                {
                    throw new UserFriendlyException(L("NoDataToExport"));
                }
            }
            var fileDto   = new FileDto(L(typeof(TEntity).Name) + L("ExportData") + ".xlsx", MimeTypeNames.ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheet);
            var byteArray = await ExcelExporter.ExportAsByteArray(exportData);

            TempFileCacheManager.SetFile(fileDto.FileToken, byteArray);
            return(fileDto);
        }
コード例 #19
0
            private void ClassDocumentation(string val)
            {
                if (_currentKeyWord != KeyWordType.CLASS)
                {
                    string[] headers = { "Название", "Тип", "Базовый класс и интерфейсы", "Описание" };
                    ExcelExporter.AppendLine(Color.GreenYellow, headers);
                    _currentKeyWord    = KeyWordType.CLASS;
                    _currentAccessType = KeyWordType.PRIVATE;
                }
                val = val.Replace(";", string.Empty);
                var docParams   = new List <string>();
                var typeAndName = val.Split('=');

                docParams.Add(typeAndName[0]);
                var parent = typeAndName[1].Split('(');

                docParams.Add(parent[0]);
                if (parent.Length > 1)
                {
                    docParams.Add(parent[1].Replace(")", string.Empty));
                }

                ExcelExporter.AppendLine(Color.White, docParams.ToArray());
            }
コード例 #20
0
        public async Task ExportByColumnIndex_Test()
        {
            var exporter = new ExcelExporter();
            var filePath = GetTestFilePath($"{nameof(ExportByColumnIndex_Test)}.xlsx");

            DeleteFile(filePath);

            var data   = GenFu.GenFu.ListOf <Issue179>(100);
            var result = await exporter.Export(filePath, data);

            result.ShouldNotBeNull();
            File.Exists(filePath).ShouldBeTrue();
            using (var pck = new ExcelPackage(new FileInfo(filePath)))
            {
                pck.Workbook.Worksheets.Count.ShouldBe(1);
                var sheet = pck.Workbook.Worksheets.First();
                sheet.Tables.Count.ShouldBe(1);

                var tb = sheet.Tables.First();
                tb.Columns.Count.ShouldBe(typeof(Issue179).GetProperties().Where(p => !p.GetAttribute <ExporterHeaderAttribute>().IsIgnore).Count());
                tb.Columns.First().Name.ShouldBe("员工姓名");
                tb.Columns[1].Name.ShouldBe("料号");
            }
        }
コード例 #21
0
        public void WriteTestFile()
        {
            var configuration = new SheetConfiguration()
            {
                Name    = "Sheet A",
                Columns = new List <ColumnBase>()
                {
                    new TextColumn("Title", nameof(Record.Name)),
                    new BooleanColumn("Active", nameof(Record.IsActive)),
                    new DateColumn("Edited on...", nameof(Record.LastEditTime)),
                    new NumberColumn("Length", nameof(Record.Size))
                },
                Data = new List <object>()
                {
                    new Record()
                    {
                        LastEditTime = DateTime.Now,
                        IsActive     = true,
                        Name         = "Test a",
                        Size         = 123.4
                    },
                    new Record()
                    {
                        LastEditTime = DateTime.MaxValue,
                        IsActive     = false,
                        Name         = "Test b",
                        Size         = 4
                    }
                }
            };

            using (var stream = ExcelExporter.Generate(configuration))
            {
                File.WriteAllBytes(TestFilePath, stream.ToArray());
            }
        }
コード例 #22
0
        public ActionResult DownloadBlankTemplate()
        {
            try
            {
                const string filePath = "~/App_Data/ExportTemplates/ImportEmployeeTemplate.xlsx";
                var          fileName = "EmployeesDataUpload.xlsx";
                var          excel    = new ExcelExporter(Server.MapPath(filePath));

                var folderPath        = System.Web.HttpContext.Current.Server.MapPath("~\\Temp");
                var destinationFolder = string.Format("{0}\\{1}", folderPath, System.Web.HttpContext.Current.User.Identity.Name);
                CreateFolder(destinationFolder, fileName);

                const string sheet = "Employee";
                excel.SelectWorksheet(sheet);
                excel.SaveAs(Path.Combine(destinationFolder, fileName));

                return(Json(new { fileName }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                var errorMessage = Message.IMPORT_DRAWING_DownloadError;
                return(Json(new { fileName = "", errorMessage }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #23
0
        public void GivenExportTypeTest()
        {
            var exportType = "excel";

            // 完整重構的 strategy
            // 在報表物件內部已不再包含策略的選擇(switch),變成需由外部決定後再傳入報表物件
            IExportStrategy exporter = null;

            switch (exportType)
            {
            case "pdf":
                exporter = new PDFExporter();
                break;

            case "excel":
            default:
                exporter = new ExcelExporter();
                break;
            }
            var reportObj = new LunchReport_V3(exporter);
            var result    = reportObj.Export("午餐清單");

            Assert.AreEqual(exportType, _GetFileExt(result));
        }
コード例 #24
0
        public async Task ExportMutiCollectionWithEmpty_Test()
        {
            var exporter = new ExcelExporter();

            var filePath = GetTestFilePath($"{nameof(ExportMutiCollectionWithEmpty_Test)}.xlsx");

            DeleteFile(filePath);


            var list1 = new List <ExportTestDataWithAttrs>();

            var list2 = new List <ExportTestDataWithSplitSheet>();


            var result = exporter.Append(list1).Append(list2).ExportAppendData(filePath);

            result.ShouldNotBeNull();

            File.Exists(filePath).ShouldBeTrue();
            using (var pck = new ExcelPackage(new FileInfo(filePath)))
            {
                pck.Workbook.Worksheets.Count.ShouldBe(2);
            }
        }
コード例 #25
0
        private void reportToExcelToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ExcelExporter excelExporter = new ExcelExporter();

            excelExporter.ExportFile(dataGridView1);
        }
コード例 #26
0
 public void ExportToExcel(object sender, DoWorkEventArgs e)
 {
     isExporting = true;
     ExcelExporter.ExportDataTableToExcelSheet(e.Argument.ToString(), dataTables, sheetNames);
 }
コード例 #27
0
ファイル: frmGRDataLast.cs プロジェクト: hkiaipc/fnq
 /// <summary>
 /// 
 /// </summary>
 /// <param name="ee"></param>
 private void DeleteGRAlarmColumn(ExcelExporter ee)
 {
     int col = 1;
     int row = 1;
     FlexCel.Core.TXlsCellRange cellRange = new FlexCel.Core.TXlsCellRange(
         row, col, row, col);
     ee.XlsFile.DeleteRange(cellRange, FlexCel.Core.TFlxInsertMode.ShiftColRight);
 }
コード例 #28
0
 protected abstract byte[] CreateExcelData(ExcelExporter exporter, OutputData outputData);
コード例 #29
0
        protected override TimeSpan OnProcess()
        {
            if (_settings.ExportType == ExportTypes.Sql && _settings.Connection == null)
            {
                this.AddErrorLog(LocalizedStrings.Str3768);
                return(TimeSpan.MaxValue);
            }

            var allSecurity        = this.GetAllSecurity();
            var supportedDataTypes = (allSecurity == null
                                        ? Enumerable.Empty <Type>()
                                        : SupportedMarketDataTypes.Intersect(allSecurity.MarketDataTypes)
                                      ).ToArray();

            this.AddInfoLog(LocalizedStrings.Str2306Params.Put(_settings.StartFrom));

            Func <int, bool> isCancelled = count => !CanProcess();

            var hasSecurities = false;

            foreach (var security in GetWorkingSecurities())
            {
                hasSecurities = true;

                if (!CanProcess())
                {
                    break;
                }

                var path = _settings.ExportFolder;

                if (path.IsEmpty())
                {
                    path = DriveCache.Instance.DefaultDrive.Path;
                }

                foreach (var t in (allSecurity == null ? security.MarketDataTypes : supportedDataTypes))
                {
                    if (!CanProcess())
                    {
                        break;
                    }

                    var arg      = _settings.CandleSettings.Arg;
                    var dataType = t.ToMessageType(ref arg);

                    this.AddInfoLog(LocalizedStrings.Str3769Params.Put(security.Security.Id, dataType.Name, _settings.ExportType));

                    var fromStorage = StorageRegistry.GetStorage(security.Security, dataType, arg, _settings.Drive, _settings.StorageFormat);

                    var from = fromStorage.GetFromDate();
                    var to   = fromStorage.GetToDate();

                    if (from == null || to == null)
                    {
                        this.AddWarningLog(LocalizedStrings.Str3770);
                        continue;
                    }

                    from = _settings.StartFrom.Max(from.Value);
                    to   = (DateTime.Today - TimeSpan.FromDays(_settings.Offset)).Min(to.Value);

                    if (from > to)
                    {
                        continue;
                    }

                    BaseExporter exporter;

                    if (_settings.ExportType == ExportTypes.Sql)
                    {
                        exporter = new DatabaseExporter(security.Security, arg, isCancelled, _settings.Connection)
                        {
                            BatchSize   = _settings.BatchSize,
                            CheckUnique = _settings.CheckUnique,
                        };
                    }
                    else
                    {
                        var fileName = Path.Combine(path, security.Security.GetFileName(
                                                        dataType, arg, from.Value, to.Value, _settings.ExportType));

                        switch (_settings.ExportType)
                        {
                        case ExportTypes.Excel:
                            exporter = new ExcelExporter(security.Security, arg, isCancelled, fileName, () => this.AddErrorLog(LocalizedStrings.Str3771));
                            break;

                        case ExportTypes.Xml:
                            exporter = new XmlExporter(security.Security, arg, isCancelled, fileName);
                            break;

                        case ExportTypes.Txt:
                            exporter = new TextExporter(security.Security, arg, isCancelled, fileName, GetTxtTemplate(dataType, arg), _settings.Header);
                            break;

                        case ExportTypes.Bin:
                            exporter = new BinExporter(security.Security, arg, isCancelled, DriveCache.Instance.GetDrive(path));
                            break;

                        default:
                            throw new ArgumentOutOfRangeException();
                        }
                    }

                    foreach (var date in from.Value.Range(to.Value, TimeSpan.FromDays(1)))
                    {
                        if (!CanProcess())
                        {
                            break;
                        }

                        try
                        {
                            this.AddInfoLog(LocalizedStrings.Str3772Params.Put(security.Security.Id, dataType.Name, _settings.ExportType, date));
                            exporter.Export(dataType, fromStorage.Load(date));
                        }
                        catch (Exception ex)
                        {
                            HandleError(ex);
                        }
                    }
                }
            }

            if (!hasSecurities)
            {
                this.AddWarningLog(LocalizedStrings.Str2292);
                return(TimeSpan.MaxValue);
            }

            if (CanProcess())
            {
                this.AddInfoLog(LocalizedStrings.Str2300);

                _settings.StartFrom = DateTime.Today - TimeSpan.FromDays(_settings.Offset);
                SaveSettings();
            }

            return(base.OnProcess());
        }
コード例 #30
0
        ///// <summary>
        ///// 
        ///// </summary>
        ///// <param name="msg"></param>
        ///// <param name="keyData"></param>
        ///// <returns></returns>
        //protected override System.Boolean ProcessCmdKey(ref Message msg, Keys keyData)
        //{
        //    // ProcessCmdKey is only used for the Enter and the Escape keys.
        //    if (keyData == Keys.Enter)
        //    {
        //        if (this.CurrentColumn.Index == this.Columns.Count - 1)
        //        {
        //            this.MoveCurrentRow(VerticalDirection.Down);
        //            this.MoveCurrentCell(HorizontalDirection.Leftmost);
        //        }
        //        else
        //        {
        //            // Move to the next cell on the right when the enter key is pressed
        //            this.MoveCurrentCell(HorizontalDirection.Right);
        //            this.CurrentCell.BringIntoView();
        //        }
        //        return true;
        //    }
        //    return base.ProcessCmdKey(ref msg, keyData);
        //}
        /// <summary>
        /// ������Excel
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="IncludeDetailGrids"></param>
        /// <param name="grid"></param>
        private static void ExportToExcelXml(string fileName, bool IncludeDetailGrids, IGrid grid)
        {
            ExcelExporter excelExporter = new ExcelExporter();

            excelExporter.IncludeColumnHeaders = true;
            excelExporter.GridLineColor = Color.DarkGray;
            excelExporter.IncludeGridStyles = true;

            excelExporter.RepeatParentData = false;
            excelExporter.DetailGridsMode = DetailGridsMode.Independent;

            excelExporter.IncludeDetailGrids = IncludeDetailGrids;

            excelExporter.CellDataFormat = CellDataFormat.Value;
            excelExporter.WritingCell += new WritingCellElementEventHandler(excelExporter_WritingCell);
            try
            {
                if (grid is DetailGrid)
                {
                    excelExporter.ColumnHeaderStyle = new ExcelStyle(Color.White, Color.Black,
                                                             new Font((grid as DetailGrid).Font, FontStyle.Bold),
                                                             ContentAlignment.BottomLeft);
                    excelExporter.Export((grid as DetailGrid), fileName);
                }
                else if (grid is GridControl)
                {
                    excelExporter.ColumnHeaderStyle = new ExcelStyle(Color.White, Color.Black,
                                                             new Font((grid as GridControl).Font, FontStyle.Bold),
                                                             ContentAlignment.BottomLeft);
                    excelExporter.Export((grid as GridControl), fileName);
                }

                //if ((MessageForm.ShowYesNo("�ѳɹ�������" + System.Environment.NewLine + System.Environment.NewLine + "�Ƿ�Ҫ��Excel�д򿪣�", "�ɹ�����")))
                //{
                //    System.Diagnostics.Process.Start(saveFileDialog.FileName);
                //}
            }
            catch (Exception ex)
            {
                ExceptionProcess.ProcessWithNotify(ex);
            }
            finally
            {
                excelExporter.WritingCell -= new WritingCellElementEventHandler(excelExporter_WritingCell);
            }
        }
コード例 #31
0
ファイル: Startup.cs プロジェクト: ni4ka7a/Molybdenum-Team
        private static void ExportReportsToExcel()
        {
            using (var dbContext = new FluentModelContent())
            {
                var reports = dbContext.Reports.ToList();

                var excelExporter = new ExcelExporter<Report>();
                excelExporter.ExportDataModelsCollectionToExcelFile("../../", "report", "someName", reports);
            }

            Console.WriteLine("The Excel table was successfully writen.");
        }
コード例 #32
0
        public async Task Issue296_Test()
        {
            string json = @"{
            'ReportTitle': '测试报告',
            'BeginDate': '2020/06/24',
            'EndDate': '2021/06/24',
            '播放大厅营收报表': [
              {'EquipName':'一区','放映场次':'100','取消场次':1,'售票数量':'100','入场人数':'100','入场异常':'100'},
              {'EquipName':'二区','放映场次':'101','取消场次':12,'售票数量':'101','入场人数':'101','入场异常':'101'},
              {'EquipName':'三区','放映场次':'101','取消场次':12,'售票数量':'101','入场人数':'101','入场异常':'101'},
              {'EquipName':'四区','放映场次':'101','取消场次':12,'售票数量':'101','入场人数':'101','入场异常':'101'},
              {'EquipName':'五区','放映场次':'101','取消场次':12,'售票数量':'101','入场人数':'101','入场异常':'101'},
              {'EquipName':'六区','放映场次':'101','取消场次':12,'售票数量':'101','入场人数':'101','入场异常':'101'},
              {'EquipName':'七区','放映场次':'101','取消场次':12,'售票数量':'101','入场人数':'101','入场异常':'101'},
              {'EquipName':'八区','放映场次':'101','取消场次':12,'售票数量':'101','入场人数':'101','入场异常':'101'},
              {'EquipName':'九区','放映场次':'101','取消场次':12,'售票数量':'101','入场人数':'101','入场异常':'101'},
            ],
            '播放大厅能耗情况': [
              {'EquipName':'一区','放映设备':'100','放映空调':1,'4D设备':'100','能耗异常':'100','冷凝机组':'100','售卖区':'100'},
              {'EquipName':'s区','放映设备':'100','放映空调':2,'4D设备':'101','能耗异常':'111','冷凝机组':'200','售卖区':'30'},
{'EquipName':'1区','放映设备':'100','放映空调':2,'4D设备':'101','能耗异常':'111','冷凝机组':'200','售卖区':'30'},
{'EquipName':'一2区','放映设备':'100','放映空调':2,'4D设备':'101','能耗异常':'111','冷凝机组':'200','售卖区':'30'},
{'EquipName':'3','放映设备':'100','放映空调':2,'4D设备':'101','能耗异常':'111','冷凝机组':'200','售卖区':'30'},
{'EquipName':'4','放映设备':'100','放映空调':2,'4D设备':'101','能耗异常':'111','冷凝机组':'200','售卖区':'30'},
{'EquipName':'5','放映设备':'100','放映空调':2,'4D设备':'101','能耗异常':'111','冷凝机组':'200','售卖区':'30'},
{'EquipName':'6','放映设备':'100','放映空调':2,'4D设备':'101','能耗异常':'111','冷凝机组':'200','售卖区':'30'},
{'EquipName':'7','放映设备':'100','放映空调':2,'4D设备':'101','能耗异常':'111','冷凝机组':'200','售卖区':'30'}
            ],
            '安全情况':[
              {'EquipName':'火警','时间':'今天','位置':'测试','次数':'100'},
              {'EquipName':'异常','时间':'今天','位置':'测试','次数':'100'}
            ],
            '考勤情况':[
               {'EquipName':'早班1','出勤':'11','休假':'33','迟到':'55','缺勤':'77','总人数':'1100'},
               {'EquipName':'早班2','出勤':'22','休假':'44','迟到':'66','缺勤':'88','总人数':'1100'}
            ]
          }";
            var    jobj = JObject.Parse(json);
            //模板路径
            var tplPath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "ExportTemplates",
                                       "Issue296.xlsx");

            //创建Excel导出对象
            IExportFileByTemplate exporter = new ExcelExporter();
            //导出路径
            var filePath = Path.Combine(Directory.GetCurrentDirectory(), $"{nameof(Issue296_Test)}.xlsx");

            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }

            //根据模板导出
            await exporter.ExportByTemplate(filePath, jobj, tplPath);

            using (var pck = new ExcelPackage(new FileInfo(filePath)))
            {
                //检查转换结果
                var sheet = pck.Workbook.Worksheets.First();
                //确保所有的转换均已完成
                sheet.Cells[sheet.Dimension.Address].Any(p => p.Text.Contains("{{")).ShouldBeFalse();
            }
        }
コード例 #33
0
        public async Task DynamicExportWithExpandoObjectByTemplate_Test()
        {
            dynamic data = new ExpandoObject();

            data.Company   = "雪雁";
            data.Address   = "湖南长沙";
            data.Contact   = "雪雁";
            data.Tel       = "136xxx";
            data.BookInfos = new List <ExpandoObject>()
            {
            };

            dynamic book1 = new ExpandoObject();

            book1.No               = "A1";
            book1.RowNo            = 1;
            book1.Name             = "Docker+Kubernetes应用开发与快速上云";
            book1.EditorInChief    = "李文强";
            book1.PublishingHouse  = "机械工业出版社";
            book1.Price            = 65;
            book1.PurchaseQuantity = 50000;
            book1.Cover            = "https://img9.doubanio.com/view/ark_article_cover/retina/public/135025435.jpg?v=1585121965";
            book1.Remark           = "买买买";
            data.BookInfos.Add(book1);

            dynamic book2 = new ExpandoObject();

            book2.No               = "A2";
            book2.RowNo            = 2;
            book2.Name             = "Docker+Kubernetes应用开发与快速上云";
            book2.EditorInChief    = "李文强";
            book2.PublishingHouse  = "机械工业出版社";
            book2.Price            = 65;
            book2.PurchaseQuantity = 50000;
            book2.Cover            = "https://img9.doubanio.com/view/ark_article_cover/retina/public/135025435.jpg?v=1585121965";
            book2.Remark           = "买买买";
            data.BookInfos.Add(book2);

            //模板路径
            var tplPath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "ExportTemplates",
                                       "DynamicExportTpl.xlsx");
            //创建Excel导出对象
            IExportFileByTemplate exporter = new ExcelExporter();
            //导出路径
            var filePath = Path.Combine(Directory.GetCurrentDirectory(), nameof(DynamicExportWithExpandoObjectByTemplate_Test) + ".xlsx");

            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }

            //根据模板导出
            await exporter.ExportByTemplate(filePath, data, tplPath);

            using (var pck = new ExcelPackage(new FileInfo(filePath)))
            {
                //检查转换结果
                var sheet = pck.Workbook.Worksheets.First();
                //确保所有的转换均已完成
                sheet.Cells[sheet.Dimension.Address].Any(p => p.Text.Contains("{{")).ShouldBeFalse();
            }
        }
コード例 #34
0
ファイル: frmOneStationCalcHeat.cs プロジェクト: hkiaipc/fnq
 /// <summary>
 /// 
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void ucSelectCondition1_ExportEvent(object sender, EventArgs e)
 {
     // TODO: 到处耗热量合计
     //
     string f = ExcelExporter.GenerateFileName();
     ExcelExporter ee = new ExcelExporter(f, DataGridViewFormatters.DefaultDataFormatterCollection);
     CCC ccc = CCCFactory.CreateGRDataCCC(this.dataGridView1);
     ee.Export(dataGridView1, ccc);
     //Process.Execute(f);
     ProcessStartInfo si = new ProcessStartInfo(f);
     si.ErrorDialog = true;
     Process.Start(si);
 }
コード例 #35
0
        /// <summary>
        /// Appelé lorsque l'utilisateur clique sur le bouton d'export excel
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">Les <see cref="RoutedEventArgs"/> contenant les données de l'évènement.</param>
        private async void OnExportExcelClick(object sender, RoutedEventArgs e)
        {
            var formats = new Dictionary <ColumnFormat, ExportFormatBehavior>();

            IEnumerable <DataGridColumn> columns;

            if (_target is DlhSoft.Windows.Controls.GanttChartDataGrid)
            {
                columns = ((DlhSoft.Windows.Controls.GanttChartDataGrid)_target).Columns;
            }
            else
            {
                columns = _target.Columns;
            }

            var sortedVisibileColumns = columns
                                        .Where(c => c.Visibility == Visibility.Visible)
                                        .OrderBy(c => c.DisplayIndex)
                                        .ToArray();

            // On crée les formats compatibles avec l'exporter.
            foreach (DataGridColumn column in sortedVisibileColumns)
            {
                ColumnFormat         excelFormat = new ColumnFormat();
                ExportFormatBehavior format      = Interaction.GetBehaviors(column).OfType <ExportFormatBehavior>().FirstOrDefault();

                if (format != null &&
                    format.Binding != null)
                {
                    excelFormat.Header   = format.Header ?? (column.Header != null ? column.Header.ToString() : string.Empty);
                    formats[excelFormat] = format;
                }
            }

            var data = new List <CellContent[]>();

            // On récupère les données grâce aux bindings
            foreach (object item in _target.Items)
            {
                CellContent[] row = new CellContent[formats.Count];

                int i = 0;
                foreach (var kvp in formats)
                {
                    var excelFormat = kvp.Key;
                    var behavior    = kvp.Value;
                    // Appliquer le binding
                    var element = new FrameworkElement
                    {
                        DataContext = item
                    };
                    BindingOperations.SetBinding(element, CellContentProperty, behavior.Binding);
                    object value = element.GetValue(CellContentProperty);
                    BindingOperations.ClearBinding(element, CellContentProperty);

                    row[i] = value?.ToString();

                    i++;
                }

                data.Add(row);
            }

            // Affiche la fenêtre de confirmation
            var result = IoC.Resolve <IDialogFactory>().GetDialogView <IExportDialog>().ShowExportToExcel(ExcelFormat.Xlsm);

            // On sauvegarde
            if (result.Accepts)
            {
                try
                {
                    string        fileName = ExcelExporter.GetFileNameWithExtension(result.Filename);
                    ExcelExporter file     = await ExcelExporter.Create(fileName);

                    WorksheetPart sheet = file.CreateSheet(LocalizationManager.GetString("DataGrid_ExcelExportSheetName"));
                    file.AddTable(sheet, formats.Keys.ToArray(), data.ToArray());
                    file.SaveAndClose();

                    if (result.OpenWhenCreated)
                    {
                        System.Diagnostics.Process.Start(fileName);
                    }
                }
                catch (ExcelExporter.FileAlreadyInUseExeption ex)
                {
                    TraceManager.TraceError(ex, ex.Message);
                    // Une notification a déjà été affichée dans ce cas précis
                }
                catch (Exception ex)
                {
                    TraceManager.TraceError(ex, ex.Message);
                    IoC.Resolve <IDialogFactory>().GetDialogView <IErrorDialog>().Show(ex.Message, LocalizationManager.GetString("Common_Error"), ex);
                }
            }
        }
コード例 #36
0
        public byte[] ExportAsExcel()
        {
            var dataToExport = dbContext.Products.AsEnumerable().Select(p => new ProductDC(p));

            return(ExcelExporter.ExportDataToExcel(dataToExport.ToList(), typeof(Product).Name));
        }
コード例 #37
0
 public void SetUp()
 {
     _excelCreatorMock = new Mock <IExcelCreator>();
     _excelFileMock    = new Mock <IExcelFile>();
     _excelExporter    = new ExcelExporter(_excelCreatorMock.Object);
 }
コード例 #38
0
        /// <summary>
        /// Export click
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button_export_Click(object sender, EventArgs e)
        {
            string         filename       = null;
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter = "Excel|*.xls";
            saveFileDialog.Title  = language.exportSaveFileDialogTitle;;
            saveFileDialog.ShowDialog();
            filename = saveFileDialog.FileName;
            if (!String.IsNullOrEmpty(filename))
            {
                Cursor.Current = Cursors.WaitCursor;

                DataTable datatable = new DataTable();
                datatable.Clear();
                datatable.Columns.Add(language.exportColumnCode);
                datatable.Columns.Add(language.exportColumnType);
                datatable.Columns.Add(language.exportColumnName);
                datatable.Columns.Add(language.exportColumnPrice);
                foreach (treatmentspriceslists treatmentspriceslist in _dentnedModel.TreatmentsPricesLists.List().OrderBy(r => r.treatmentspriceslists_name))
                {
                    datatable.Columns.Add(language.exportColumnPrice + "-" + treatmentspriceslist.treatmentspriceslists_id);
                }

                //add datatable columns
                foreach (treatments treatment in _dentnedModel.Treatments.List().OrderBy(r => r.treatments_code))
                {
                    DataRow row = datatable.NewRow();
                    row[language.exportColumnCode]  = treatment.treatments_code;
                    row[language.exportColumnType]  = _dentnedModel.TreatmentsTypes.Find(treatment.treatmentstypes_id).treatmentstypes_name;
                    row[language.exportColumnName]  = treatment.treatments_name;
                    row[language.exportColumnPrice] = treatment.treatments_price;
                    foreach (treatmentspriceslists treatmentspriceslist in _dentnedModel.TreatmentsPricesLists.List().OrderBy(r => r.treatmentspriceslists_name))
                    {
                        Nullable <decimal> price           = null;
                        treatmentsprices   treatmentsprice = _dentnedModel.TreatmentsPrices.FirstOrDefault(r => r.treatments_id == treatment.treatments_id && r.treatmentspriceslists_id == treatmentspriceslist.treatmentspriceslists_id);
                        if (treatmentsprice != null)
                        {
                            price = treatmentsprice.treatmentsprices_price;
                        }
                        row[language.exportColumnPrice + "-" + treatmentspriceslist.treatmentspriceslists_id] = price;
                    }
                    datatable.Rows.Add(row);
                }

                Cursor.Current = Cursors.Default;

                //export to excel
                DataSet dataset = new DataSet();
                dataset.Tables.Add(datatable);
                if (!String.IsNullOrEmpty(filename))
                {
                    try
                    {
                        ExcelExporter.CreateWorkbook(filename, dataset);
                    }
                    catch
                    {
                        MessageBox.Show(String.Format(language.exportErrorMessage, filename), language.exportErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    if (MessageBox.Show(language.exportSuccessMessage, language.exportSuccessTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                    {
                        try
                        {
                            Process.Start(filename);
                        }
                        catch { }
                    }
                }
            }
        }
コード例 #39
0
 public override void Execute(object parameter)
 {
     ExcelExporter.WriteToExcel(orderViewModel.Orders);
 }
コード例 #40
0
        private async void btn_ConvertFile_Click(object sender, RoutedEventArgs e)
        {
            string sourceFilePath = txt_SourceFilePath.Text;

            if (string.IsNullOrEmpty(sourceFilePath))
            {
                MessageBox.Show("请选择要转换的文件!");
                return;
            }
            string targetDire = txt_TargetDirPath.Text;

            if (string.IsNullOrEmpty(targetDire))
            {
                MessageBox.Show("请选择目标文件夹!");
                return;
            }

            if (!File.Exists(sourceFilePath))
            {
                MessageBox.Show("转换的源文件不存在!");
                return;
            }
            if (!Directory.Exists(targetDire))
            {
                MessageBox.Show("目标文件夹不存在!");
                return;
            }
            var columnSplitStr = this.txt_ColumnSplitStr.Text;

            if (string.IsNullOrEmpty(columnSplitStr))
            {
                MessageBox.Show("列分隔符不能为空!");
                return;
            }
            loadingBar.IsOpen = true;
            txt_Msg.Text      = "";
            dataTable         = new DataTable();
            var rowList = GetFileRows(sourceFilePath);

            await foreach (var row in rowList)
            {
            }
            var indexColumnName = txt_IndexColumnName.Text;

            if (dataTable != null && dataTable.Rows.Count > 0)
            {
                if (!string.IsNullOrEmpty(indexColumnName))
                {
                    dataTable.Columns.Add(indexColumnName, typeof(int));
                    for (var i = 0; i < dataTable.Rows.Count; i++)
                    {
                        dataTable.Rows[i][indexColumnName] = i + 1;
                    }
                }
            }
            if (string.IsNullOrEmpty(txt_Msg.Text))
            {
                txt_Msg.Text = $"总共{dataTable.Rows.Count}行";
                var excelFileName = System.IO.Path.GetFileNameWithoutExtension(sourceFilePath) + ".xlsx";
                var saveExcelPath = targetDire + "\\" + excelFileName;
                //var exportFileInfo =
                await Task.Run(async() =>
                {
                    var exporter = new ExcelExporter();
                    await exporter.Export(saveExcelPath, dataTable);
                    MessageBox.Show("转换成功!");
                });
            }
            loadingBar.IsOpen = false;
        }
コード例 #41
0
ファイル: ImportService.cs プロジェクト: dtafe/vnr
        public string Export(Guid importTemplateID, IList listInvalidData, string outputPath)
        {
            string result = string.Empty;

            using (var context = new VnrHrmDataContext())
            {
                var unitOfWork = (IUnitOfWork)(new UnitOfWork(context));

                if (importTemplateID != Guid.Empty)
                {
                    var importTemplate = unitOfWork.CreateQueryable<Cat_Import>(Guid.Empty,
                        d => d.ID == importTemplateID).Select(d => new
                        {
                            d.StartColumnIndex,
                            d.StartRowIndex,
                            d.SheetIndex,
                            d.ObjectName,
                            d.TemplateFile
                        }).FirstOrDefault();

                    var listImportItem = unitOfWork.CreateQueryable<Cat_ImportItem>(Guid.Empty,
                        d => d.ImportID == ImportTemplateID && d.ExcelField != null && d.IsDelete == null).Select(d =>
                            new
                            {
                                d.ChildFieldLevel1,
                                d.ChildFieldLevel2,
                                d.ExcelField,
                                d.AllowNull,
                                d.AllowDuplicate,
                                d.DuplicateGroup
                            }).OrderBy(d => d.ExcelField).ToList();

                    ExcelExporter exporter = new ExcelExporter();
                    ExportTemplate template = new ExportTemplate();
                    template.TemplateID = importTemplateID;
                    template.DataSource = listInvalidData;

                    template.SheetIndex = (int)importTemplate.SheetIndex.GetLong();
                    template.StartRowIndex = (int)importTemplate.StartRowIndex.GetLong();
                    template.StartColumnIndex = (int)importTemplate.StartColumnIndex.GetLong();
                    Type objectType = GetAssembly(importTemplate.ObjectName);

                    string templatepath = Common.GetPath(Common.TemplateURL).Replace("/", "\\");
                    template.TemplateFile = templatepath + "\\" + importTemplate.TemplateFile;

                    string fileSuffix = DateTime.Now.ToString("yyyyMMddHHmmss");
                    string fileExt = Path.GetExtension(importTemplate.TemplateFile);
                    fileExt = string.IsNullOrWhiteSpace(fileExt) ? "xls" : fileExt;
                    fileExt = fileExt.StartsWith(".") ? fileExt : "." + fileExt;

                    string filename = Path.GetFileNameWithoutExtension(importTemplate.TemplateFile);
                    template.FileName = outputPath.Replace("/", "\\") + filename + fileSuffix + fileExt;

                    foreach (var importItem in listImportItem)
                    {
                        string childFieldLevel1 = importItem.ChildFieldLevel1.TrimAll();
                        string childFieldLevel2 = importItem.ChildFieldLevel2.TrimAll();
                        PropertyInfo propertyType = objectType.GetProperty(childFieldLevel1);

                        if (propertyType != null)
                        {
                            if (string.IsNullOrWhiteSpace(childFieldLevel2))
                            {
                                template.MappingFields.Add(childFieldLevel1, importItem.ExcelField);
                            }
                            else
                            {
                                if (unitOfWork.IsMetadataType(propertyType.PropertyType))
                                {
                                    propertyType = propertyType.PropertyType.GetProperty(childFieldLevel2);
                                    string importFieldName = unitOfWork.GetFieldConstraint(objectType, childFieldLevel1);
                                    template.MappingFields.Add(importFieldName + "_" + childFieldLevel2, importItem.ExcelField);
                                }
                            }
                        }
                    }

                    exporter.ExportByTemplate(template);
                    result = template.FileName;
                }
            }

            return result;
        }
コード例 #42
0
        public async Task ExportBytesByTemplate_Test1()
        {
            //模板路径
            var tplPath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "ExportTemplates",
                                       "template.xlsx");
            //创建Excel导出对象
            IExportFileByTemplate exporter = new ExcelExporter();
            //导出路径
            var filePath = Path.Combine(Directory.GetCurrentDirectory(), nameof(ExportBytesByTemplate_Test1) + ".xlsx");

            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }

            var airCompressors = new List <AirCompressor>
            {
                new AirCompressor()
                {
                    Name               = "1#",
                    Manufactor         = "111",
                    ExhaustPressure    = "0",
                    ExhaustTemperature = "66.7-95",
                    RunningTime        = "35251",
                    WarningError       = "正常",
                    Status             = "开机"
                },
                new AirCompressor()
                {
                    Name               = "2#",
                    Manufactor         = "222",
                    ExhaustPressure    = "1",
                    ExhaustTemperature = "90.7-95",
                    RunningTime        = "2222",
                    WarningError       = "正常",
                    Status             = "开机"
                }
            };

            var afterProcessings = new List <AfterProcessing>
            {
                new AfterProcessing()
                {
                    Name         = "1#abababa",
                    Manufactor   = "杭州立山",
                    RunningTime  = "NaN",
                    WarningError = "故障",
                    Status       = "停机"
                }
            };

            var suggests = new List <Suggest>
            {
                new Suggest()
                {
                    Number         = 1,
                    Description    = "故障停机",
                    SuggestMessage = "顾问团队远程协助"
                }
            };

            //根据模板导出
            var result = await exporter.ExportBytesByTemplate(
                new ReportInformation()
            {
                Contacts                = "11112",
                ContactsNumber          = "13642666666",
                CustomerName            = "ababace",
                Date                    = DateTime.Now.ToString("yyyy年MM月dd日"),
                SystemExhaustPressure   = "0.54-0.62",
                SystemDewPressure       = "-0.63--77.5",
                SystemDayFlow           = "201864",
                AirCompressors          = airCompressors,
                AfterProcessings        = afterProcessings,
                Suggests                = suggests,
                SystemPressureHisotries = new List <SystemPressureHisotry>()
            },
                tplPath);

            result.ShouldNotBeNull();
            using (var file = File.OpenWrite(filePath))
            {
                file.Write(result, 0, result.Length);
            }

            using (var pck = new ExcelPackage(new FileInfo(filePath)))
            {
                //检查转换结果
                var sheet = pck.Workbook.Worksheets.First();
                //确保所有的转换均已完成
                sheet.Cells[sheet.Dimension.Address].Any(p => p.Text.Contains("{{")).ShouldBeFalse();
            }
        }
コード例 #43
0
ファイル: frmGRDataQR.cs プロジェクト: hkiaipc/fnq
 /// <summary>
 /// 
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void ucSelectCondition1_ExportEvent(object sender, EventArgs e)
 {
     if (ExcelExporter.CanExport(this.dataGridView1))
     {
         string f = ExcelExporter.GenerateFileName();
         ExcelExporter ee = new ExcelExporter(f, DataGridViewFormatters.DefaultDataFormatterCollection);
         //CCC ccc = CCCFactory.CreateGRDataCCC(this.dataGridView1);
         //ee.Export(dataGridView1, ccc);
         ee.Export(dataGridView1);
         //Process.Execute(f);
         ProcessStartInfo si = new ProcessStartInfo(f);
         si.ErrorDialog = true;
         Process.Start(si);
     }
     else
     {
         string s = string.Format("数据行数不能大于 {0}", ExcelExporter.MaxRowCount);
         NUnit.UiKit.UserMessage.DisplayFailure(s);
     }
 }
コード例 #44
0
        public HttpResponseMessage Export(ExportSettingsModel model)
        {
            ImplementationGuide ig = this.tdb.ImplementationGuides.SingleOrDefault(y => y.Id == model.ImplementationGuideId);

            if (model.TemplateIds == null)
            {
                model.TemplateIds = ig.GetRecursiveTemplates(this.tdb, categories: model.SelectedCategories.ToArray()).Select(y => y.Id).ToList();
            }

            List <Template>   templates    = this.tdb.Templates.Where(y => model.TemplateIds.Contains(y.Id)).ToList();
            SimpleSchema      schema       = SimplifiedSchemaContext.GetSimplifiedSchema(HttpContext.Current.Application, ig.ImplementationGuideType);
            IIGTypePlugin     igTypePlugin = IGTypePluginFactory.GetPlugin(ig.ImplementationGuideType);
            IGSettingsManager igSettings   = new IGSettingsManager(this.tdb, model.ImplementationGuideId);
            bool   isCDA = ig.ImplementationGuideType.SchemaURI == "urn:hl7-org:v3";
            string fileName;

            byte[] export;
            string contentType = null;

            switch (model.ExportFormat)
            {
            case ExportFormats.FHIR_Build_Package:
            case ExportFormats.FHIR_Bundle:
            case ExportFormats.Native_XML:
            case ExportFormats.Templates_DSTU_XML:
                string fileExtension = model.ReturnJson ? "json" : "xml";
                contentType = model.ReturnJson ? JSON_MIME_TYPE : XML_MIME_TYPE;

                if (model.ExportFormat == ExportFormats.FHIR_Build_Package)
                {
                    fileExtension = "zip";
                    contentType   = ZIP_MIME_TYPE;
                }

                fileName = string.Format("{0}.{1}", ig.GetDisplayName(true), fileExtension);
                var pluginExporter = igTypePlugin.GetExporter();
                export = pluginExporter.Export(this.tdb, schema, model.ExportFormat, igSettings, model.SelectedCategories, templates, model.IncludeVocabulary, model.ReturnJson);
                break;

            case ExportFormats.Snapshot_JSON:
                ImplementationGuideController ctrl = new ImplementationGuideController(this.tdb);
                var dataModel = ctrl.GetViewData(model.ImplementationGuideId, null, null, true);

                // Serialize the data to JSON
                var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
                jsonSerializer.MaxJsonLength = Int32.MaxValue;
                export = System.Text.Encoding.UTF8.GetBytes(jsonSerializer.Serialize(dataModel));

                // Set the filename to JSON
                fileName    = string.Format("{0}.json", ig.GetDisplayName(true));
                contentType = JSON_MIME_TYPE;
                break;

            case ExportFormats.Microsoft_Word_DOCX:
                ImplementationGuideGenerator generator = new ImplementationGuideGenerator(this.tdb, model.ImplementationGuideId, model.TemplateIds);
                fileName = string.Format("{0}.docx", ig.GetDisplayName(true));

                ExportSettings lConfig = new ExportSettings();
                lConfig.Use(c =>
                {
                    c.GenerateTemplateConstraintTable = model.TemplateTables == TemplateTableOptions.ConstraintOverview || model.TemplateTables == TemplateTableOptions.Both;
                    c.GenerateTemplateContextTable    = model.TemplateTables == TemplateTableOptions.Context || model.TemplateTables == TemplateTableOptions.Both;
                    c.GenerateDocTemplateListTable    = model.DocumentTables == DocumentTableOptions.List || model.DocumentTables == DocumentTableOptions.Both;
                    c.GenerateDocContainmentTable     = model.DocumentTables == DocumentTableOptions.Containment || model.DocumentTables == DocumentTableOptions.Both;
                    c.AlphaHierarchicalOrder          = model.TemplateSortOrder == TemplateSortOrderOptions.AlphaHierarchically;
                    c.DefaultValueSetMaxMembers       = model.ValueSetTables ? model.MaximumValueSetMembers : 0;
                    c.GenerateValueSetAppendix        = model.ValueSetAppendix;
                    c.IncludeXmlSamples     = model.IncludeXmlSample;
                    c.IncludeChangeList     = model.IncludeChangeList;
                    c.IncludeTemplateStatus = model.IncludeTemplateStatus;
                    c.IncludeNotes          = model.IncludeNotes;
                    c.IncludeVolume1        = model.IncludeVolume1;
                    c.SelectedCategories    = model.SelectedCategories;
                    c.GenerateRequiredAndOptionalSectionsTable = model.GenerateRequiredAndOptionalSectionsTable;
                    c.DocumentTemplateTypeId = model.DocumentTemplateTypeId;
                    c.SectionTemplateTypeId  = model.SectionTemplateTypeId;
                });

                if (model.ValueSetOid != null && model.ValueSetOid.Count > 0)
                {
                    Dictionary <string, int> valueSetMemberMaximums = new Dictionary <string, int>();

                    for (int i = 0; i < model.ValueSetOid.Count; i++)
                    {
                        if (valueSetMemberMaximums.ContainsKey(model.ValueSetOid[i]))
                        {
                            continue;
                        }

                        valueSetMemberMaximums.Add(model.ValueSetOid[i], model.ValueSetMaxMembers[i]);
                    }

                    lConfig.ValueSetMaxMembers = valueSetMemberMaximums;
                }

                generator.BuildImplementationGuide(lConfig, ig.ImplementationGuideType.GetPlugin());
                export      = generator.GetDocument();
                contentType = DOCX_MIME_TYPE;
                break;

            case ExportFormats.Schematron_SCH:
                string schematronResult = SchematronGenerator.Generate(tdb, ig, model.IncludeCustomSchematron, VocabularyOutputType.Default, model.VocabularyFileName, templates, model.SelectedCategories, model.DefaultSchematron);
                export      = ASCIIEncoding.UTF8.GetBytes(schematronResult);
                fileName    = string.Format("{0}.sch", ig.GetDisplayName(true));
                contentType = XML_MIME_TYPE;

                if (model.IncludeVocabulary)
                {
                    using (ZipFile zip = new ZipFile())
                    {
                        zip.AddEntry(fileName, export);

                        NativeTerminologyExporter nativeTermExporter = new NativeTerminologyExporter(this.tdb);
                        byte[] vocData     = nativeTermExporter.GetExport(ig.Id, model.MaximumValueSetMembers, this.GetExportEncoding(model));
                        string vocFileName = string.Format("{0}", model.VocabularyFileName);

                        //Ensuring the extension is present in case input doesn't have it
                        if (vocFileName.IndexOf(".xml") == -1)
                        {
                            vocFileName += ".xml";
                        }

                        zip.AddEntry(vocFileName, vocData);

                        using (MemoryStream ms = new MemoryStream())
                        {
                            zip.Save(ms);

                            fileName    = string.Format("{0}.zip", ig.GetDisplayName(true));
                            contentType = ZIP_MIME_TYPE;
                            export      = ms.ToArray();
                        }
                    }
                }
                break;

            case ExportFormats.Vocabulary_XLSX:
                fileName    = string.Format("{0}.xlsx", ig.GetDisplayName(true));
                contentType = XLSX_MIME_TYPE;

                ExcelExporter excelExporter = new ExcelExporter(this.tdb);
                export = excelExporter.GetSpreadsheet(ig.Id, model.MaximumValueSetMembers);

                break;

            case ExportFormats.Vocbulary_Single_SVS_XML:
                fileName    = string.Format("{0}_SingleSVS.xml", ig.GetDisplayName(true));
                contentType = XML_MIME_TYPE;

                SingleSVSExporter ssvsExporter = new SingleSVSExporter(this.tdb);
                export = ssvsExporter.GetExport(ig.Id, model.MaximumValueSetMembers, this.GetExportEncoding(model));

                break;

            case ExportFormats.Vocabulary_Multiple_SVS_XML:
                fileName    = string.Format("{0}_MultipleSVS.xml", ig.GetDisplayName(true));
                contentType = XML_MIME_TYPE;

                MultipleSVSExporter msvsExporter = new MultipleSVSExporter(this.tdb);
                export = msvsExporter.GetExport(ig.Id, model.MaximumValueSetMembers, this.GetExportEncoding(model));

                break;

            case ExportFormats.Vocabulary_Native_XML:
                fileName    = string.Format("{0}_MultipleSVS.xml", ig.GetDisplayName(true));
                contentType = XML_MIME_TYPE;

                NativeTerminologyExporter nativeExporter = new NativeTerminologyExporter(this.tdb);
                export = nativeExporter.GetExport(ig.Id, model.MaximumValueSetMembers, this.GetExportEncoding(model));

                break;

            case ExportFormats.Web_HTML:
                // Get the data from the API controller
                HtmlExporter exporter      = new HtmlExporter(this.tdb);
                var          templateIds   = templates.Select(y => y.Id).ToArray();
                var          htmlDataModel = exporter.GetExportData(ig.Id, null, templateIds, model.IncludeInferred);

                IGController igController    = new IGController(this.tdb);
                var          downloadPackage = igController.GetDownloadPackage(ig, JsonConvert.SerializeObject(htmlDataModel));

                export      = downloadPackage.Content;
                fileName    = downloadPackage.FileName;
                contentType = ZIP_MIME_TYPE;
                break;

            case ExportFormats.Vocbulary_Bundle_FHIR_XML:
                ValueSetExporter vsExporter = new ValueSetExporter(this.tdb);
                var bundle = vsExporter.GetImplementationGuideValueSets(ig);

                if (model.ReturnJson)
                {
                    export      = fhir_stu3.Hl7.Fhir.Serialization.FhirSerializer.SerializeResourceToJsonBytes(bundle);
                    fileName    = string.Format("{0}_fhir_voc.json", ig.GetDisplayName(true));
                    contentType = JSON_MIME_TYPE;
                }
                else
                {
                    export      = fhir_stu3.Hl7.Fhir.Serialization.FhirSerializer.SerializeResourceToXmlBytes(bundle);
                    fileName    = string.Format("{0}_fhir_voc.xml", ig.GetDisplayName(true));
                    contentType = XML_MIME_TYPE;
                }

                break;

            default:
                throw new NotSupportedException();
            }

            return(GetExportResponse(fileName, contentType, export));
        }
コード例 #45
0
 public void Initialize()
 {
     this.exporter = new ExcelExporter();
 }