// 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); }
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)); }