处理word作用域,将域指定替换为对应值,然后移除掉域。使用域而不使用标签是因为域可以方便用户使用和维护。相对可视化。
上代码:
Document doc = new Document("Test2.docx");
DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
foreach (Field field in doc.Range.Fields)
{
var k = field.GetFieldCode();
if (field.GetFieldCode().Contains("文字"))
{
builder.MoveToField(field, true);
builder.Write("你好!");
field.Remove();
}
if (field.GetFieldCode().Contains("表格"))
{
builder.MoveToField(field, true);
builder.StartTable();
builder.InsertCell();
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
builder.CellFormat.Borders.Color = Color.Black;
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.Previous;
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
Console.WriteLine(builder.CellFormat.Width);
builder.Write("RowSpan 2 , Cell 0 Content");
builder.InsertCell();
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
builder.CellFormat.Borders.Color = Color.Black;
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
builder.Write("Row 1, Cell 1 Content.");
Console.WriteLine(builder.CellFormat.Width);
builder.InsertCell();
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
builder.CellFormat.Borders.Color = Color.Black;
//builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.Previous;
Console.WriteLine(builder.CellFormat.Width);
builder.InsertCell();
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
builder.CellFormat.Borders.Color = Color.Black;
//builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.Previous;
//builder.Write("Row 1, Cell 2 Content.");
Console.WriteLine(builder.CellFormat.Width);
builder.EndRow();
builder.InsertCell();
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
builder.CellFormat.Borders.Color = Color.Black;
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
builder.InsertCell();
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
builder.CellFormat.Borders.Color = Color.Black;
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
builder.Write("Row 2, Cell 1 Content.");
builder.InsertCell();
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
builder.CellFormat.Borders.Color = Color.Black;
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
builder.Write("Row 2, Cell 2 Content.");
builder.InsertCell();
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
builder.CellFormat.Borders.Color = Color.Black;
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
builder.Write("Row 2, Cell 3 Content.");
builder.EndRow();
//builder.insert
builder.EndTable();
field.Remove();
}
if (field.GetFieldCode().Contains("图片"))
{
builder.MoveToField(field, true);
builder.InsertImage("123.png");
field.Remove();
}
}
doc.Save("new1.docx");