Aspose.Word 的常见使用 起因
因项目需要,而且使用html转Word的时候,样式不兼容问题,于是只能使用Aspose.Word通过代码生成。下面是通过DocumentBuilder来设计Word的,但是和使用模型拼接的差不多,原理基本一致。
思路这里是说使用Aspose.Word的使用思路,只想某个功能是怎么使用的可以跳过
代码都是人写的,所以每一个代码都有他的风格,了解这些代码作者的思路有利于我们去使用它。
简单使用Word,无非就是文字,图片,表格以及页面的样式。如果了解Css和英语好点的基本都是可以在VS里面点出来的,最难的就是最开始的入门的。
关于页面的设置,基本都在PageSetup中,根据需要和正常的名字,基本都可以猜出来
写入一段文字 //获取ParagraphFormat对象,关于行的样式基本都在这里 var ph = builder.ParagraphFormat; //文字对齐方式 ph.Alignment = ParagraphAlignment.Center; // 单倍行距 = 12 , 1.5 倍 = 18 ph.LineSpacing = 12; //获取Font对象,关于文字的大小,颜色,字体等等基本都在这个里面 Aspose.Words.Font font = builder.Font; //字体大小 font.Size = 22; //是否粗体 font.Bold = false; //下划线样式,None为无下划线 font.Underline = Underline.None; //字体颜色 font.Color = Color.Black;//C#的颜色 font.Color = System.Drawing.ColorTranslator.FromHtml("#3b3131");//自定义颜色 //设置字体 font.NameFarEast = "宋体"; //添加文字 builder.Write("添加的文字"); //添加回车 builder.Writeln(); //添加文字后回车 builder.Writeln("添加的文字后回车");基本使用到的就是这几个了,如果需要更多可以自己在VS里面点后试试看。
注意:`builder`在`Write`的时候,默认会使用上面规定的格式,除非你在使用`Write`前更新画笔的格式,所以,当你在做样式很多的Word的时候注意更改画笔的格式。 添加图片 builder.InsertImage("图片绝对地址"); builder.InsertImage("图片绝对地址", 80, 80);//可以控制图片的宽高基本是这样使用,当然还有是其他很多种的参数,比如Image或Stream等,在使用的时候可以根据需要使用
添加表格 //开始添加表格 Aspose.Words.Tables.Table table = builder.StartTable(); //开始添加第一行,并设置表格行高 RowFormat rowf = builder.RowFormat; rowf.Height = 40; // ....这里rowf可以有很多的设置 //插入一个单元格 builder.InsertCell(); //设置单元格是否水平合并,None为不合并 builder.CellFormat.HorizontalMerge = CellMerge.None; //设置单元格是否垂直合并,None为不合并 builder.CellFormat.VerticalMerge = CellMerge.None; //设置单元格宽 builder.CellFormat.Width = 40; //单元格垂直对齐方向 builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center; //单元格水平对齐方向 builder.ParagraphFormat.Alignment = ParagraphAlignment.Left; builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽) //单元格内添加文字 builder.Write("这是第一行第一个单元格"); builder.InsertCell(); builder.CellFormat.Width = -1;//当不需要规定这个单元格的宽度的时候,设置成-1,会是自动宽度 builder.Write("这是第一行第二个单元格"); //结束第一行 builder.EndRow(); //结束表格 builder.EndTable(); //设置这个表格的上下左右,内部水平,垂直的线为白色(当背景为白色的时候就相当于隐藏边框了) table.SetBorder(BorderType.Left, LineStyle.Double, 1, Color.White, false); table.SetBorder(BorderType.Top, LineStyle.Double, 1, Color.White, false); table.SetBorder(BorderType.Right, LineStyle.Double, 1, Color.White, false); table.SetBorder(BorderType.Bottom, LineStyle.Double, 1, Color.White, false); table.SetBorder(BorderType.Vertical, LineStyle.Double, 1, Color.White, false); 注意:最重要的是不用忘记开始表格,开始一行,结束一行,结束表格 里面的设置可以根据个人需要修改,也可以不写使用默认的 表格的合并单元格 //横向合并单元格 builder.CellFormat.HorizontalMerge = CellMerge.None; builder.CellFormat.HorizontalMerge = CellMerge.First; builder.CellFormat.HorizontalMerge = CellMerge.Previous; //纵向合并单元格 builder.CellFormat.VerticalMerge = CellMerge.None; builder.CellFormat.VerticalMerge = CellMerge.First; builder.CellFormat.VerticalMerge = CellMerge.Previous; 备注:当不需要合并单元格的时候设置为 None,当需要合并单元格的时候,第一个设置为First,并正常写入这个单元格应该存储的内容。后面的到了要和这个单元格合并的单元格的时候,不需要写入内容,只需要设置成Previous即可。