public void Export() { this.setViewModel(); var fileInfo = new FileInfo(_viewModel.TemplatePath); var newFileInfo = new FileInfo(fileInfo.DirectoryName + "\\" + fileInfo.Name.Split('.')[0] + "_new" + fileInfo.Extension); File.Delete(newFileInfo.FullName); File.Copy(fileInfo.FullName, newFileInfo.FullName); using (var outputDocument = new TemplateProcessor(newFileInfo.FullName).SetRemoveContentControls(true)) { ListContent listContent = new ListContent("Table list"); foreach (var t in _viewModel.Tables) { var listItemContent = new ListItemContent(); listContent.AddItem(listItemContent); listItemContent.AddField("Table title", "[" + t.Schema + "].[" + t.TableName + "]"); listItemContent.AddField("Table name", "[" + t.Schema + "].[" + t.TableName + "]"); listItemContent.AddField("Table description", t.Description); listItemContent.AddField("Table pk", t.PrimaryKeys); var columnContent = new TableContent("Column row"); listItemContent.AddTable(columnContent); foreach (var c in t.Columns) { columnContent.AddRow( new FieldContent("Name", c.Name), new FieldContent("Type", c.Type), new FieldContent("Null", c.Nullable), new FieldContent("Description", c.Description)); } } Content mainContent = new Content(listContent); outputDocument.FillContent(mainContent); outputDocument.SaveChanges(); } }
public static void FillContentControls(string fileName, List <DocumentData> newDocumentDatas) { List <IContentItem> contentItems = new List <IContentItem>(); foreach (var item in newDocumentDatas) { if (item is FieldDocumentData) { contentItems.Add(new FieldContent((item as FieldDocumentData).Key, (item as FieldDocumentData).Value)); } if (item is ListDocumentData) { ListContent listContent = new ListContent(item.Key); if ((item as ListDocumentData).Fields.Count != 0) { for (int i = 0; i < (item as ListDocumentData).Fields[0].Values.Count; i++) { ListItemContent listcontentItems = new ListItemContent(); foreach (var item1 in (item as ListDocumentData).Fields) { listcontentItems.AddField((item1 as FieldsDocumentData).Key, (item1 as FieldsDocumentData).Values[i]); } foreach (var item1 in (item as ListDocumentData).Tables) { TableContent tableContent = new TableContent(item1.Key); if ((item1 as TableDocumentData).Fields.Count != 0) { for (int j = ((item1 as TableDocumentData).Fields[0].Values.Count / (item as ListDocumentData).Fields[0].Values.Count) * i; j < ((item1 as TableDocumentData).Fields[0].Values.Count / (item as ListDocumentData).Fields[0].Values.Count) + (((item1 as TableDocumentData).Fields[0].Values.Count / (item as ListDocumentData).Fields[0].Values.Count) * i); j++) { List <IContentItem> tableRowContent = new List <IContentItem>(); foreach (var item2 in (item1 as TableDocumentData).Fields) { tableRowContent.Add(new FieldContent((item2 as FieldsDocumentData).Key, (item2 as FieldsDocumentData).Values[j])); } tableContent.AddRow(tableRowContent.ToArray()); } } listcontentItems.AddTable(tableContent); } listContent.AddItem(listcontentItems); } } contentItems.Add(listContent); } if (item is TableDocumentData) { TableContent tableContent = new TableContent(item.Key); if ((item as TableDocumentData).Fields.Count != 0) { for (int i = 0; i < (item as TableDocumentData).Fields[0].Values.Count; i++) { List <IContentItem> tableRowContent = new List <IContentItem>(); foreach (var item1 in (item as TableDocumentData).Fields) { tableRowContent.Add(new FieldContent((item1 as FieldsDocumentData).Key, (item1 as FieldsDocumentData).Values[i])); } tableContent.AddRow(tableRowContent.ToArray()); } } contentItems.Add(tableContent); } } var valuesToFill = new Content(contentItems.ToArray()); using (var outputDocument = new TemplateProcessor(fileName).SetRemoveContentControls(true))//true false { outputDocument.FillContent(valuesToFill); outputDocument.SaveChanges(); } }