private void CreateTableOnPdfFile_3() { //create filename of pdf_file_tosave var word_file_tosave = @"d:\1.docx"; //new pdf doc var word_doc = new Aspose.Words.Document(); var table1 = new Aspose.Words.Tables.Table(word_doc); var row1 = new Aspose.Words.Tables.Row(word_doc); var cell1 = new Aspose.Words.Tables.Cell(word_doc); //var para1 = new Aspose.Words.Paragraph(word_doc); cell1.AppendChild(new Aspose.Words.Paragraph(word_doc)); cell1.FirstParagraph.AppendChild(new Aspose.Words.Run(word_doc, "1223333")); row1.AppendChild(cell1); table1.AppendChild(row1); word_doc.FirstSection.Body.AppendChild(table1); //save try { word_doc.Save(word_file_tosave, Aspose.Words.SaveFormat.Docx); MessageBox.Show("Save Successfully!"); //pdfDoc.Dispose(); Process.Start(word_file_tosave); } catch { MessageBox.Show("Faild to Save!"); } }
private void Form1_Load(object sender, EventArgs e) { this.filePath.Text = "F:\\eee\\Test.docx"; //载入模板 var doc = new Document(this.filePath.Text); //基本属性 DocumentBuilder builder = new DocumentBuilder(doc); builder.MoveToMergeField("txt1"); builder.Write("被我写入了值11!"); builder.MoveToMergeField("txt2"); builder.Write("被我写入了值22!"); //写表格 NodeCollection allTables = doc.GetChildNodes(NodeType.Table, true); Aspose.Words.Tables.Table wordTable; //获取第一张表 wordTable = allTables[0] as Aspose.Words.Tables.Table; //获取表头 int index = 0; Aspose.Words.Tables.Row rowTen = wordTable.Rows[index]; DataTable dt = GetDataTable(); //添加数据 for (int i = 0; i < dt.Rows.Count; i++) { //复制表头的那行样式和数据等过来。如果你单独插入一行,你自己试试吧会有惊喜的 Aspose.Words.Tables.Row row = (Aspose.Words.Tables.Row)rowTen.Clone(true); //因为复制的是表头,所以里面的数据是需要我们根据实际数据替换掉的。更改序号 Aspose.Words.Tables.Cell cell = row.Cells[0]; Aspose.Words.Paragraph p = new Paragraph(doc); p.AppendChild(new Run(doc, (i + 1).ToString())); cell.FirstParagraph.Remove();//移除之前的数据 cell.AppendChild(p); //更改为需要填充的数据=XXX string str1 = dt.Rows[i]["XXX"].ToString(); cell = row.Cells[1]; p = new Paragraph(doc); p.AppendChild(new Run(doc, str1)); cell.FirstParagraph.Remove(); cell.AppendChild(p); //添加一行数据 wordTable.Rows.Add(row); } //写图片 //保存 doc.Save("F:\\eee\\WriteDoc.docx"); }
public AsposeDocCell(Aspose.Words.Tables.Cell cell) { if (cell == null) { return; } String cellText = cell.ToString(Aspose.Words.SaveFormat.Text).Trim(); Text = cellText; IsEmpty = String.IsNullOrEmpty(Text); }
public override List <Cell> GetCells(int row, int maxColEnd = -1) { int index = 0; List <Cell> result = new List <Cell>(); IEnumerator enumerator = table.Rows[row].GetEnumerator(); int range_end = -1; while (enumerator.MoveNext()) { Aspose.Words.Tables.Cell cell = (Aspose.Words.Tables.Cell)enumerator.Current; if (index < range_end) { index++; continue; } result.Add(new AsposeDocCell(cell)); index++; } return(result); }
public static string Process(DocOptions options) { string result = ""; try { var config = ConfigHelpers.GetDefaultConfig(options.Config); IDatabase database = new Database(config, LogHelpers.LogStatic, option => { //option.CodeGenProjectName = projectName; //option.CodeGenNameSpace = nameSpace; //option.CodeGenTableFilter = tablePrefixFilter; //option.AutoMigrateOnContainTable = onlyTable; }); string type = options.Type; var projectConfig = DbLoader.ConvertDatabaseConfigToProjectConfig(database); LogHelpers.LogStatic(projectConfig.ToString()); string msg = ""; var tables = DbLoader.GetTableInfos(database, projectConfig, null, null, out msg); LogHelpers.LogStatic(msg); string docName = projectConfig.DatabaseName; OutputContext _OutputContext = new OutputContext(); _OutputContext.Tables = tables; // context.Mappers = mapperDict; _OutputContext.ProjectConfig = projectConfig; //context.ParserConfig = _parseConfig; string FileName = docName + "数据库设计文档." + type; string RealOutputFileName = System.IO.Path.Combine(DbLoader.GetProjectDirectory(projectConfig), FileName); if (type == "html") { string templatePath = DbLoader.MapPath("~/DocGen/dicthtml.cshtml"); if (System.IO.File.Exists(templatePath)) { string tempalteContent = FileHelper.ReadFile(templatePath); string key = "exportdicthtml"; var templateEngine = DbLoader.CreateTemplateEngine(); var generateResult = templateEngine.Parse <OutputContext>(tempalteContent, key, _OutputContext); string content = generateResult; templateEngine.OutputResult(RealOutputFileName, content); //return File(RealOutputFileName, "application/zip-x-compressed", FileName); } } else { //Other types string tmppath = DbLoader.MapPath("~/DocGen/dict.dot"); // System.IO.Path.Combine(path, "Template", "template.dot"); Aspose.Words.Document doc = new Aspose.Words.Document(tmppath); //载入模板 Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc); string dbName = docName; if (string.IsNullOrEmpty(dbName)) { dbName = _OutputContext.ProjectConfig.Name; } doc.Range.Replace("{$.DBName}", dbName, false, false); Aspose.Words.Tables.Table tabletemp = (Aspose.Words.Tables.Table)doc.GetChild(Aspose.Words.NodeType.Table, 0, true); Aspose.Words.Tables.Table tableClone = (Aspose.Words.Tables.Table)tabletemp.Clone(true); for (int k = 0; k < _OutputContext.Tables.Count; k++) { Aspose.Words.Tables.Table table = (Aspose.Words.Tables.Table)doc.GetChild(Aspose.Words.NodeType.Table, k, true); var tb = _OutputContext.Tables[k]; //添加表头标题 var par = table.ParentNode.InsertBefore(new Aspose.Words.Paragraph(doc), table); builder.MoveTo(par); builder.ParagraphFormat.StyleIdentifier = Aspose.Words.StyleIdentifier.Heading1; builder.Font.Size = 11; builder.Write(tb.Comment + "(" + tb.Name + ")"); Aspose.Words.Tables.Cell cellh = table.FirstRow.Cells[1]; cellh.RemoveAllChildren(); builder.MoveToCell(k, 0, 1, 0); builder.Write(tb.Name); Aspose.Words.Tables.Cell cellh3 = table.FirstRow.Cells[3]; cellh3.RemoveAllChildren(); builder.MoveToCell(k, 0, 3, 0); builder.Write(tb.Comment != null ? tb.Comment : ""); for (int i = 0; i < tb.Columns.Count; i++) { for (int j = 0; j < table.LastRow.Cells.Count; j++) { Aspose.Words.Tables.Cell cell = table.LastRow.Cells[j]; cell.RemoveAllChildren(); builder.MoveToCell(k, table.Rows.Count - 1, j, 0); switch (j) { case 0: builder.Write(tb.Columns[i].Comment != null ? tb.Columns[i].Comment : ""); break; case 1: builder.Write(tb.Columns[i].Name); break; case 2: builder.Write(tb.Columns[i].RawType); break; case 3: builder.Write(tb.Columns[i].Length.ToString()); break; case 4: builder.Write(tb.Columns[i].Scale.ToString()); break; case 5: builder.Write(tb.Columns[i].IsPK ? "Y" : ""); break; case 6: builder.Write(tb.Columns[i].IsNullable ? "Y" : ""); break; case 7: builder.Write(tb.Columns[i].IsAutoIncrement ? "Y" : ""); break; case 8: builder.Write(tb.Columns[i].DefaultValue == null ? "" : tb.Columns[i].DefaultValue.ToString()); break; default: break; } } if (i < tb.Columns.Count - 1) { Aspose.Words.Tables.Row clonedRow = (Aspose.Words.Tables.Row)table.LastRow.Clone(true); table.AppendChild(clonedRow); } } if (k < _OutputContext.Tables.Count - 1) { Aspose.Words.Tables.Table tbClone = (Aspose.Words.Tables.Table)tableClone.Clone(true); table.ParentNode.InsertAfter(tbClone, table); } } doc.UpdateFields(); doc.Range.Replace("{$.NowDateTime}", DateTime.Now.ToString(), false, false); Aspose.Words.SaveFormat sformat = Aspose.Words.SaveFormat.Doc; switch (type) { case "doc": sformat = Aspose.Words.SaveFormat.Doc; break; case "docx": sformat = Aspose.Words.SaveFormat.Docx; break; //case "html": // sformat = Aspose.Words.SaveFormat.Html; // break; case "odt": sformat = Aspose.Words.SaveFormat.Odt; break; case "pdf": sformat = Aspose.Words.SaveFormat.Pdf; break; case "png": sformat = Aspose.Words.SaveFormat.Png; break; case "tiff": sformat = Aspose.Words.SaveFormat.Tiff; break; case "text": sformat = Aspose.Words.SaveFormat.Text; break; case "epub": sformat = Aspose.Words.SaveFormat.Epub; break; default: break; } doc.Save(RealOutputFileName, sformat); //return File(RealOutputFileName, "application/zip-x-compressed", FileName); } if (options.Zip) { var zipDir = RealOutputFileName; string zipedName = docName + "-" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".zip"; string zipOutFileName = System.IO.Path.Combine(DbLoader.GetDataDirectory(), zipedName); //ZipHelper.ZipDir(zipDir, zipOutFileName, 9); //ZipHelper.ZipManyFilesOrDictorys(zipDir, zipOutFileName, ""); ZipHelper.ZipFile(zipDir, zipOutFileName); RealOutputFileName = zipOutFileName; } LogHelpers.LogStatic("生成数据库字典成功:" + RealOutputFileName); ConfigHelpers.OpenDir(RealOutputFileName); } catch (Exception ex) { LogHelpers.LogStatic("DocGenerator 生成数据库字典出错!", ex, Pure.Data.MessageType.Error); } return(result); }
private void CreateCell(DocumentBuilder builder, List <ColumnInfo> _columList, bool IsSqlite) { for (int j = 0; j < _columList.Count; j++) { Aspose.Words.Tables.Cell _cell = null; _cell = builder.InsertCell();//主键的时候 添加背景色为黄色 if (_columList[j].IsPK) { _cell.CellFormat.Shading.BackgroundPatternColor = Color.Yellow; } else { _cell.CellFormat.Shading.BackgroundPatternColor = Color.Transparent; } builder.Write((j + 1).ToString()); //SEQ builder.InsertCell(); builder.Write(_columList[j].ColumnName); //ColumName builder.InsertCell(); builder.Write(_columList[j].TypeName); //Type builder.InsertCell(); switch (_columList[j].TypeName.Trim().ToUpper()) { case "NVARCHAR": case "NVARCHAR2": if (IsSqlite) { builder.Write(_columList[j].Length.Trim()); //Length } else { builder.Write((Convert.ToInt32(_columList[j].Length.Trim()) / 2).ToString()); //Length } break; case "NUMBER": case "NUMERIC": if ((string.IsNullOrEmpty(_columList[j].Preci.Trim())) && (string.IsNullOrEmpty(_columList[j].Scale.Trim()))) { builder.Write(""); } else if ((_columList[j].Preci.Trim() == "0") && (_columList[j].Scale.Trim() == "0")) { builder.Write(""); } else { builder.Write("(" + (_columList[j].Preci + "," + _columList[j].Scale + ")")); } break; case "SMALLMONEY": case "BIGINT": case "SMALLINT": case "DATETIME": case "INT": case "TEXT": builder.Write(""); break; default: builder.Write((_columList[j].Length).ToString()); break; } builder.InsertCell(); if (_columList[j].DefaultVal == null) { builder.Write(""); } else { builder.Write(_columList[j].DefaultVal); } builder.InsertCell(); if (_columList[j].cisNull)//NULL { builder.Write("√"); } else { builder.Write(""); } builder.InsertCell(); if (_columList[j].DeText == null) { builder.Write(""); } else { builder.Write(_columList[j].DeText);//DESCRIPTION } builder.InsertCell(); builder.Write("");//REMARK builder.EndRow(); } builder.InsertBreak(BreakType.LineBreak); }
public override VisitorAction VisitCellEnd(Aspose.Words.Tables.Cell cell) { this.structureBuilder.AppendLine("</Cell>"); return(VisitorAction.Continue); }
public override Cell GetCell(int row, int column) { Aspose.Words.Tables.Cell cell = table.Rows[row].Cells[column]; return(new AsposeDocCell(cell)); }