1、新建Word文档
CreateWordFile
新建Word文档#region 新建Word文档
/** <summary>
/// 动态生成Word文档并填充内容
/// </summary>
/// <param name="dir">文档目录</param>
/// <param name="fileName">文档名</param>
/// <returns>返回自定义信息</returns>
public static bool CreateWordFile(string dir, string fileName)
{
try
{
Object oMissing = System.Reflection.Missing.Value;
if (!Directory.Exists(dir))
{
//创建文件所在目录
Directory.CreateDirectory(dir);
}
//创建Word文档(Microsoft.Office.Interop.Word)
Microsoft.Office.Interop.Word._Application WordApp = new Application();
WordApp.Visible = true;
Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Add(
ref oMissing, ref oMissing, ref oMissing, ref oMissing);
//此处插入你想写的文字,公式,标格,图片,对象等等。
//保存
object filename = dir + fileName;
WordDoc.SaveAs(ref filename, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
return true;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
return false;
}
}
#endregion 新建Word文档
{
para.Range.Text = text ;
para.Range.Font.Size = Size;
if (Bold)
para.Range.Font.Bold = 2;
//para.Range.Font.Italic = 2;//Italic为文字是否是斜体
para.Range.InsertParagraphAfter();
}
range.Font.Size = 10.5F;
}
首先看看Word菜单插入/域:域类别=等式和公式;域名=Eq;(创建科学公式);域选项(开关)如下表:
开关 | 说明 |
\A() | 用任何编号的参数绘制二维矩阵 |
\B() | 用适合元素大小的括弧来括住单个的元素 |
\D() | 精确控制下一个字符的水平位置 |
\F(,) | 创建在分数线上下居中的分数 |
\I(,,) | 利用上限、下限和被积函数建立一个积分 |
\L() | 创建数值列表 |
\O() | 将每一个连续的元素重叠在其前一个元素上 |
\R() | 绘制根式 |
\S() | 将元素设置为上标或下标 |
\X() | 在括号内文字的周围创建一个方框 |
下面看几个比较实用的例子:
“EQ \i(-1,1,3x+7)”表示“3x+7”从-1到1的积分,开关\i(,,)能使用指定的符号或默认符号及三个元素创建积分。
“EQ \r(2,3m-2)”表示3m-2的平方根,(开关\r(,)能使用一个或两个元素绘制根号。
“EQ \f(7,8)”表示八分之七 ,(开关\f(,)能创建分数)。
“EQ \a \ac \co2 \vs3 \hs3(Ax,By,C,D)”表示一个二维数组。
“EQ \b \bc\{ (\r(3,x+y))” ,表示用方括号括住单个元素。
4.打入一个表格
public static void in_xls(string fileName)
{
object type = string.Format(@"Excel.Sheet.08");//插入的excel 格式,这里我用的是excel 2010,所以是.12
object filename = fileName;//插入的excel的位置
//移动光标文档末尾
object count = WordDoc.Paragraphs.Count;
object WdLine = Microsoft.Office.Interop.Word.WdUnits.wdParagraph;
WordApp.Selection.MoveDown(ref WdLine, ref count, ref oMissing);//移动焦点
WordApp.Selection.TypeParagraph();//插入段落
object LinkToFile = false;
object SaveWithDocument = true;
object Anchor = WordDoc.Application.Selection.Range;
WordApp.Selection.InlineShapes.AddOLEObject(ref type, ref filename, ref oMissing, ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref Anchor);//执行插入操作
para.Range.InsertParagraphAfter();
}
效果式样:
这样,就可以利用如上的这些东西自动生成计算说明书了。具体的排版可以再参照其他的具体细节。大致列出了如何操作word的基本方法。
重要提示:建议使用NPOI库进行操作,excel我查了一些方法,只能读取没法对一些复杂的表格进行写入,会造成表格丢失。