诺禾致源、C#经过模板导出WORD

C#经过模板导出WORD(文字,表格,图片) 转载
 C#导出Word,Excel的方法有很多,这次由于公司的业务需求,需求导出内容丰厚(文字,表格,图片)的报告,以前的方法不好使,所以寻觅新的导出方法,在网上找到了经过模板文件导出Word的方法,记载一下过程.

一:模板的创建

经过模板导出,肯定需求先创建模板,然后望文生义就是将模板中提早设置好的占位符,经过程序交流为想输出的内容即可;

新建word文件(必需为docx或者dotx文件),放在程序根目录下,在需求位置 插入-文档部件-域,

域名:MacroButton
  宏名:DoFieldClick
  显现文字:这个自己设置,为了与模板其他文字区分,可以用"[]"括起来.
  需求几交流内容,添加几域即可.

二:添加项目

在处置方案中添加项目WordMLHelper,在原项目中添加对WordMLHelper的援用后可以直接调用.
  WordMLHelper代码下载

三:调用方法

首先肯定模板文件位置和导出文件的生成途径.

    private string mubanFile = "muban.docx";
    private string outputPath = @"C:\Users\zz\Desktop\test1.docx";

1.翻开模板文件,获取一切填充域

2.遍历一切填充域,交流填充域内容

锁定填充域的话,有两种方法,一是根据填充域的提示文字,如"[文字]",二是根据填充域的索引,如if(tagInfos[i].Seq==2),则是找到索引为2的填充域

3.保管文件

View Code
四:完成

调用方法很简单,随着模板的修正,可以快速生成需求格式多样内容丰厚的Word文档,感谢您的阅读与评论.

五:补充

援用WordMLHelper.dll。
1.调用WordMLHelper的GetAllTagInfo方法(只接受后缀为.docx和.dotx的模板文件途径)获取word标准模板的填充域集合List;
2.填充域对象(TagInfo)的Tbl属性(类型为TblStructureInfo)表示表格单元格类型的填充域对象(默许值为null代表该填充域非表格单元格类型),可经过Tbl[rowIndex,cellIndex]的方式获取表格的单元格,并调用单元格(CellStructureInfo)的AddContent和AddContentLine(填充内容后换行)方法填充文本和图片;
3.Tbl属性的TblType变量表示该表格是仅含水平表头(HORIZONTAL_HEADER)还是含水平和垂直表头(HORIZONTAL_VERTICAL_HEADER)。
4.根据需求将文本(TxtInfo对象)、图片(ImgInfo对象)和表格(TblInfo对象)经过调用填充域(TagInfo对象)的AddContent和AddContentLine(填充内容后换行)方法填充到填充域中。
5.TxtInfo、ImgInfo和TblInfo类中含高度、宽度等样式属性。
6.若填充内容为不含样式的纯文本内容,则可经过WordMLHelper中的FillContentWithoutStyle方法将文本信息填充至填充域。
7.若要将不含样式的纯文本内容填充到表格单元格类型(仅含水平表头)的填充域,则可调用WordMLHelper中的FillContentToTable(TagInfo tagInfo, DataTable dt)。
8.若要生成不含样式的纯文本内容的表格,则可调用WordMLHelper中的FillContentToTable(TagInfo tagInfo, DataTable dt)。
9.调用WordMLHelper的GenerateWordDocument方法即可生成word文档。

接口

WordMLHelper:操作模板类
方法如下:
GetAllTagInfo:获取模板填充域及附加信息
FillContentToTable:快速填充、生成纯文本表格
FillContentWithoutStyle:快速填充纯文本内容到填充域
GenerateWordDocument:根据模板生成word文档

TagInfo:填充域类
属性如下:
Seq:填充域的序号
TagTips:填充域的提示信息
Tbl:表格单元格填充域类型对象(默许为null,表示非表格单元格填充域类型)

TxtInfo:文本类型填充内容类
属性如下:
Size:字体大小
ForeColor: 字体颜色
HightLight: 背风光(高亮)
FontFamily: 字体
Content: 文本内容

ImgInfo:图片类型填充内容类
属性如下:
Width: 图片宽度
Height: 图片高度
ImgPath: 图片途径

TblInfo:表格类型填充内容类
属性如下:
Width: 表格宽度
Rows: 行集合
方法如下:
AddRow: 填充行

RowInfo: 表格类型填充内容的表格行类
属性如下:
Cells: 单元格
方法如下:
AddCell: 填充单元格

CellInfo: 表格类型填充内容的单元格类
属性如下:
Width: 单元格宽度
ColSpan: 列兼并数(默许为1)
RowSpan: 行兼并数(默许为1)
方法如下:
AddContent: 添加填充内容
AddContentLine: 添加填充内容并换行

TableStructureInfo: 表格单元格类型的填充域类
属性如下:
TblType: TblType枚举类型,表示表格是仅含水平表头还是含水平和垂直表头
Rows: 行集合
方法如下:
AddRow: 填充行

RowStructureInfo: 表格单元格类型的填充域的表格行类
属性如下:
Index: 该行在模板表格中的行索引(只读)
Cells: 单元格集合
方法如下:
AddCell: 添加单元格

CellStructureInfo: 表格单元格类型的填充域的单元格类
属性如下:
Index: wordML中的列索引(大于或等于该单元格实体在行实体中的索引值)(只读)
ColSpan: 兼并列数目(默许为1,即是不兼并)(只读)
RowSpan: 兼并行数目(默许为1,即是不兼并)(只读)
Tips: 单元格中的提示内容(只读)
IsTemplate: 该单元格能否可填写(只读)
方法如下:
AddContent: 添加填充内容
AddContentLine: 添加填充内容并换行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值