根据word模板导出数据(Aspose.Words)

             //实现代码:
            string tmppath = Server.MapPath("/xlsTemplate/" + path);//模版中书签名须和数据库字段名一致
            Aspose.Words.Document doc = new Aspose.Words.Document(tmppath); //载入模板
            DocumentBuilder builder = new DocumentBuilder(doc);
            DataTable products = table; //数据源
            int count = 0;
            //记录要显示多少列
            for (var i = 0; i < products.Columns.Count; i++)
            {
                if (doc.Range.Bookmarks[products.Columns[i].ColumnName.Trim()] != null)
                {
                    Aspose.Words.Bookmark mark = doc.Range.Bookmarks[products.Columns[i].ColumnName.Trim()];
                    //mark.Text = "";
                    count++;
                }
            }
            System.Collections.Generic.List<string> listcolumn = new System.Collections.Generic.List<string>(count);
            for (var i = 0; i < count; i++)
            {
                builder.MoveToCell(0, 0, i, 0); //移动单元格
                if (builder.CurrentNode.NodeType == NodeType.BookmarkStart)
                {
                    listcolumn.Add((builder.CurrentNode as BookmarkStart).Name);
                }
            }
            double width = builder.CellFormat.Width;//获取单元格宽度
            builder.MoveToBookmark("table"); //开始添加值(模版中添加“table”书签,标志插入数据的开始位置)
            for (var m = 0; m < products.Rows.Count; m++)
            {
                for (var i = 0; i < listcolumn.Count; i++)
                {
                    builder.InsertCell(); // 添加一个单元格
                    builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                    builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
                    builder.CellFormat.Width = width;
                    builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                    builder.Write(products.Rows[m][listcolumn[i]].ToString());
                }
                builder.EndRow();
            }
            doc.Range.Bookmarks["table"].Text = ""; //操作完成后清掉“table”标示
            doc.Save("数据.doc", SaveFormat.Doc, SaveType.OpenInWord, Page.Response);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗---现在进行时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值