コード例 #1
0
ファイル: App.cs プロジェクト: yang123vc/DocX
        //	FinishedLaunching

        public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        {
            //	create webview + controller

            var controller = new UIViewController();

            controller.Title = "DocX - Test";

            var webview = new UIWebView(controller.View.Frame);

            webview.AutoresizingMask = UIViewAutoresizing.FlexibleDimensions;

            webview.ScalesPageToFit = true;

            controller.View.AddSubview(webview);

            //	create navigation controller

            var navigation = new UINavigationController(controller);

            //	initialize window

            this.Window = new UIWindow(UIScreen.MainScreen.Bounds);

            this.Window.RootViewController = navigation;

            this.Window.MakeKeyAndVisible();

            //

            try
            {
                //	path to our temp docx file

                string pathDocx = Path.Combine(Path.GetTempPath(), "Document.docx");

                //	inform user of what we are about to do

                webview.LoadHtmlString(string.Format(messageFormat, "Generating .docx file, please wait...", pathDocx), null);

                //	generating docx

                using (var document = Novacode.DocX.Create(pathDocx))
                {
                    Novacode.Paragraph p = document.InsertParagraph();

                    p.Append("This is a Word Document");

                    p = document.InsertParagraph();

                    p.Append("");

                    p = document.InsertParagraph();

                    p.Append("Hello World");

                    document.Save();
                }

                //	showing docx in webview, with delay, otherwise we don't see our initial message

                this.Invoke(() => {
                    webview.LoadRequest(NSUrlRequest.FromUrl(NSUrl.FromFilename(pathDocx)));
                }, 2.0f);

                //	done
            }
            catch (Exception e)
            {
                webview.LoadHtmlString(string.Format(messageFormat, "Exception Occurred :", e), null);
            }

            //	done

            return(true);
        }
コード例 #2
0
        public ActionResult ExportToWord()
        {
            var    vm   = new Models.MoralReport.List();
            string file = System.IO.Path.GetTempFileName();

            if (string.IsNullOrEmpty(file) == false)
            {
                using (var db = new XkSystem.Models.DbContext())
                {
                    var moral = db.Set <Entity.tbMoral>().Find(vm.MoralId);
                    if ((!vm.FromDate.HasValue || !vm.ToDate.HasValue) || vm.ToDate <= vm.FromDate)
                    {
                        vm.FromDate = moral.FromDate;
                        vm.ToDate   = moral.ToDate;
                    }

                    SetVmData(db, vm);

                    using (var doc = Novacode.DocX.Create(file, Novacode.DocumentTypes.Document))
                    {
                        var pTitle = doc.InsertParagraph();
                        pTitle.AppendLine("德育报告").Bold().FontSize(20).Alignment = Novacode.Alignment.center;

                        var pSubTitle = doc.InsertParagraph();

                        pSubTitle.AppendLine($"德育:{moral.MoralName}").Bold().FontSize(14).Alignment = Novacode.Alignment.left;
                        pSubTitle.AppendLine($"报告日期:{vm.FromDate.Value.ToString(Code.Common.StringToDate)}至{vm.ToDate.Value.ToString(Code.Common.StringToDate)}").Bold().FontSize(14).Alignment = Novacode.Alignment.left;

                        foreach (var data in vm.DataList)
                        {
                            Novacode.Paragraph p1 = doc.InsertParagraph();
                            p1.AppendLine(data.ClassName).Bold().FontSize(14);
                            var table = doc.AddTable(data.ClassDataList.Count + data.ClassGroupDataList.Count + data.StudentDataList.Count + 1, 6);
                            table.Design    = Novacode.TableDesign.TableGrid;
                            table.Alignment = Novacode.Alignment.center;

                            var rows      = table.Rows;
                            var rowHeader = rows[0];
                            rowHeader.Cells[0].Paragraphs[0].Append("班级、小组、学生");
                            rowHeader.Cells[1].Paragraphs[0].Append("德育项目");
                            rowHeader.Cells[2].Paragraphs[0].Append("分数");
                            rowHeader.Cells[3].Paragraphs[0].Append("日期");
                            rowHeader.Cells[4].Paragraphs[0].Append("评分原因");
                            rowHeader.Cells[5].Paragraphs[0].Append("评语");

                            var index = 1;
                            foreach (var dItem in data.ClassDataList)
                            {
                                var row = rows[index];
                                row.Cells[0].Paragraphs[0].Append(data.ClassName);
                                row.Cells[1].Paragraphs[0].Append(dItem.MoralItemName);
                                row.Cells[2].Paragraphs[0].Append(dItem.Score.ToString());
                                row.Cells[3].Paragraphs[0].Append(dItem.Date.ToString(Code.Common.StringToDate));
                                row.Cells[4].Paragraphs[0].Append(dItem.Reason);
                                row.Cells[5].Paragraphs[0].Append(dItem.Comment);
                                index++;
                            }

                            foreach (var dItem in data.ClassGroupDataList)
                            {
                                var row = rows[index];
                                row.Cells[0].Paragraphs[0].Append(dItem.ClassGroupName);
                                row.Cells[1].Paragraphs[0].Append(dItem.MoralItemName);
                                row.Cells[2].Paragraphs[0].Append(dItem.Score.ToString());
                                row.Cells[3].Paragraphs[0].Append(dItem.Date.ToString(Code.Common.StringToDate));
                                row.Cells[4].Paragraphs[0].Append(dItem.Reason);
                                row.Cells[5].Paragraphs[0].Append(dItem.Comment);
                                index++;
                            }

                            foreach (var dItem in data.StudentDataList)
                            {
                                var row = rows[index];
                                row.Cells[0].Paragraphs[0].Append(dItem.StudentName);
                                row.Cells[1].Paragraphs[0].Append(dItem.MoralItemName);
                                row.Cells[2].Paragraphs[0].Append(dItem.Score.ToString());
                                row.Cells[3].Paragraphs[0].Append(dItem.Date.ToString(Code.Common.StringToDate));
                                row.Cells[4].Paragraphs[0].Append(dItem.Reason);
                                row.Cells[5].Paragraphs[0].Append(dItem.Comment);
                                index++;
                            }
                            p1.InsertTableAfterSelf(table);
                        }
                        doc.Save();
                    }
                }
            }
            return(File(file, Code.Common.DownloadType, Code.Common.ExportByWord));
        }