导出效果如下图:
还是先分享下学习链接:http://www.cnblogs.com/wuhuacong/archive/2013/02/05/2893191.html
如上图,采用简单的书签进行替换,即可把书签值替换成想要的值,关键代码如下:
string tmppath = Server.MapPath("~/wordtemplate/lcljjlb.doc");
Document doc = new Document(tmppath); //载入模板
if (doc.Range.Bookmarks["enddata"] != null)
{
Bookmark mark = doc.Range.Bookmarks["enddata"];
mark.Text = Convert.ToDateTime(enddata);
//其中enddata是日期格式的字符串
}
假如要根据数据库记录生成table列表先分享下总体路线:
仅仅靠doc数据替换还做不到,
需引入 DocumentBuilder builder = new DocumentBuilder(doc);然后调用builder产生每一个小的单元格,这样组合在一起就是table。形如操作每一个带有边框的单元格产生一个大的table。
代码如下:
先将光标的位置移动至table(自己起的一个标签名字而已,无特殊含义)标签位置
builder.MoveToBookmark("table");
然后产生单元格
builder.InsertCell();
如下产生这样的一个表头:
关键代码如下:
builder.MoveToBookmark("table");
for (int i = 0; i < 7; i++)
{
builder.InsertCell();
// builder.CellFormat.FitText = true;
builder.RowFormat.Height = 15;
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
builder.CellFormat.TopPadding = 5;
builder.CellFormat.BottomPadding = 5;
builder.CellFormat.Shading.BackgroundPatternColor =System.Drawing.Color.White;
switch (i)
{
case 0:
builder.CellFormat.Width =40;
builder.Write("序号");
break;
case 1:
builder.CellFormat.Width = 100;
builder.Write("实施路径名称");
break;
case 2:
builder.CellFormat.Width = 50;
builder.Write("收治数");
break;
case 3:
builder.CellFormat.Width = 50;
builder.Write("入径数");
break;
case 4:
builder.CellFormat.Width = 70;
builder.Write("入径率(%)");
break;
case 5:
builder.CellFormat.Width = 50;
builder