一位同学让帮忙做个小功能:提前在word上建立模板,程序运行后直接输出到对应位置,避免手动输入数据。
效果如下


程序使用前须知
提前建立两个word文件,其中一个作为模板,另一个作为结果展示文件
模板里面可以绘制表格,表格中对结果部分使用
占位符,如图所示:
在程序运行后,另一个word就会展示如上面
结果展示中的结果
还有很多对word的操作,可自行网上搜索Spire
准备操作
工具
- C#
- Spire.Doc for .NET
Spire简介
Spire.Doc for .NET是一款由E-iceblue公司开发的专业的Word .NET类库,使用该工具开发人员可以在任意.NET平台(C#,VB.NET,ASP.NET)上快速创建,读取,写入,转换,打印Word文档。
简而言之,利用Spire来快速实现需求
那Spire从官网下载速度有点慢

Spire的具体使用
在解决方案资源管理器里,引用添加就行

然后在代码开头引入命名空间就完成准备工作了

代码实现
搞个button来写

搞个例子试试:
using Spire.Doc;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int i = 2;
double a, b, x,y;
a = 1.2;
b = 2.3;
x = (a + b)/2;
y = ((a-x)*(a-x)+(b-x)*(b-x))/2;//方差
var doc = new Document();
doc.LoadFromFile("F:\\test\\自己定义一个模板.docx");
doc.Replace("$[form0]$", "绕皮皮", false, false);
doc.Replace("$[form1]$", y.ToString(), false, false);
doc.Replace("$[form"+i+"]$", "666", false, false);
if(y<0.5)
doc.Replace("$[form3]$", "良好", false, false);
else
doc.Replace("$[form3]$", "差劲", false, false);
//显示一下日期
string time = DateTime.Now.ToLocalTime().ToString();
doc.Replace("$[form4]$", time, false, false);
doc.SaveToFile("F:\\test\\根据模板导出的数据.docx");
doc.Close();
MessageBox.Show("导出成功");
}
}
}
总结
- 利用Spire可以大大简化对word的操作
- 提前建立模板,利用好占位符
- 更多操作请查找Spire资料