Aspose.Words导出带图片人员信息到Word中

Aspose.Words初学者,请指教!

1.先在你的项目中引入Aspose.Words.dll

2.导出带图片人员信息到Word中代码如下:

 protected void btn_DownDoc_Click(object sender, EventArgs e)
        {

            //实例化一个新的Word Document

            //也可以在Aspose.Words.Document doc = new Aspose.Words.Document(path)中加path参数,

          

  //此path指向你设计好的Word模板路径
            Aspose.Words.Document doc = new Aspose.Words.Document();
            DocumentBuilder builder = new DocumentBuilder(doc);
            //设置单元格内容对齐方式
            builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;

            //清除设置

            builder.PageSetup.ClearFormatting();
            string sql = "select xyxz.fid,xyxz.name as xz,xyxz.ord_no,xy.* " +
                       "from jw_xyxx xy " +
                       "inner join g_infos g on g.id=xy.info_id and g.deleted<>-1 " +
                       "inner join sub_file_relation sub on sub.info_id=xy.info_id " +
                       "inner join jw_bcgl bc on bc.info_id=sub.finfo_id " +
                       "inner join g_infos g2 on g2.id=bc.info_id and g2.deleted<>-1 " +
                       "left join ( " +
                       "select wo.name,rel1.fid,rel1.ord_no,rel1.rel_id from jw_classframework_rel rel1 " +
                       "inner join jw_classframework_rel rel2 on rel1.fid=rel2.id and rel1.bcinfo_id=rel2.bcinfo_id " +
                       "inner join jw_classframework wo on rel2.rel_id=wo.id and rel2.bcinfo_id=wo.bcinfo_id " +
                       "where rel1.bcinfo_id='"+myuser.ClassList[0].ClassID+"' " +
                       ") xyxz on xyxz.rel_id=xy.info_id " +
                       "where bc.info_id='"+myuser.ClassList[0].ClassID+"' and sub.xxzt=0 " +
                       "order by xyxz.fid asc,xyxz.ord_no asc ";
            DBInfo();
            DataTable tbl = m_db.GetDataTable(sql, m_cn);
            List<string> list = new List<string>();
           
            if (tbl != null && tbl.Rows.Count > 0)
            {
                //加载小组
                for (int i = 0; i < tbl.Rows.Count; i++)
                {
                    if (!list.Contains(tbl.Rows[i]["XZ"].ToString()))
                    {
                        list.Add(tbl.Rows[i]["XZ"].ToString());
                    }
                }

                double imgcellwidth = 85;
                double imgcellheight = 120;
                double cellwidth = 165;
                double cellheight = 18.5;

                //匹配小组中的学员
                builder.StartTable();//开始画Table
                builder.RowFormat.Alignment = Aspose.Words.Tables.RowAlignment.Center;
                string xz = string.Empty;
                int count = 0;
                int rowcount = 0;
                for (int n = 0; n < list.Count;n++ )
                {
                    xz = list[n];
                    builder.RowFormat.Height = 20;
                    //插入Table单元格

                    builder.InsertCell();

                    //Table单元格边框线样式
                    builder.CellFormat.Borders.LineStyle = LineStyle.Single;

                    //Table此单元格宽度
                    builder.CellFormat.Width = 500;

                    //此单元格中内容垂直对齐方式
                    builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; 

                    builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
                    builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;

                    //字体大小
                    builder.Font.Size = 11;

                    //是否加粗
                    builder.Bold = true;

                    //向此单元格中添加内容
                    builder.Write(xz);

                    //Table行结束
                    builder.EndRow();
                    builder.Bold = false;
                    DataRow[] rows = tbl.Select("xz='" + xz + "'");
                    for (int i = 0; i < rows.Length; i = i + 2)
                    {
                        count++;
                        rowcount = (count-1)*6+1+n;
                        //第一行
                        builder.InsertCell();
                        builder.RowFormat.Height = imgcellheight;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;

                        //合并行单元格
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;

                        builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;
                        builder.CellFormat.TopPadding = 2;
                        builder.CellFormat.WrapText = false;
                        builder.CellFormat.Width = imgcellwidth;

                        if (!string.IsNullOrEmpty(rows[i]["ZPPATH"].ToString()))
                        {

                            //向此单元格中插入图片
                            Shape shape = new Shape(doc, ShapeType.Image);
                            string url = System.Configuration.ConfigurationManager.AppSettings["UserPhotosSitePath"] + "\\" + rows[i]["ZPPATH"].ToString();
                            shape.ImageData.SetImage(url);
                            shape.Width = imgcellwidth-2;
                            shape.Height = imgcellheight;
                            shape.HorizontalAlignment = HorizontalAlignment.Center;
                            CompositeNode node = shape.ParentNode;

                            //把此图片移动到那个单元格中
                            builder.MoveToCell(0, rowcount, 0, 0);
                            builder.InsertNode(shape);
                        }

                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.Width = cellwidth;
                        builder.Write(rows[i]["XM"].ToString());

                        builder.InsertCell();
                        builder.RowFormat.Height = imgcellheight;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;

                        //合并行单元格
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
                        builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;
                        builder.CellFormat.Width = imgcellwidth;
                        if (rows.Length > i + 1)
                        {
                            if (!string.IsNullOrEmpty(rows[i + 1]["ZPPATH"].ToString()))
                            {
                                Shape shape = new Shape(doc, ShapeType.Image);
                                string url = System.Configuration.ConfigurationManager.AppSettings["UserPhotosSitePath"] + "\\" + rows[i + 1]["ZPPATH"].ToString();
                                shape.ImageData.SetImage(url);
                                shape.Width = imgcellwidth-2;
                                shape.Height = imgcellheight;
                                shape.HorizontalAlignment = HorizontalAlignment.Center;
                                CompositeNode node = shape.ParentNode;
                                builder.MoveToCell(0, rowcount, 2, 0);
                                builder.InsertNode(shape);
                            }
                        }
                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.Width = cellwidth;
                        if (rows.Length > i + 1)
                        {
                            builder.Write(rows[i + 1]["XM"].ToString());
                        }
                        builder.EndRow();

                        //第二行
                        builder.InsertCell();

                        //此单元格与上一行单元格合并
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
                        builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = imgcellwidth;
                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = cellwidth;
                        builder.Write("单位及职务:"+rows[i]["SZDW"].ToString());

                        builder.InsertCell();

                        //此单元格与上一行单元格合并
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
                        builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = imgcellwidth;
                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.Width = cellwidth;
                        if (rows.Length > i + 1)
                        {
                            builder.Write("单位及职务:"+rows[i+1]["SZDW"].ToString());
                        }
                        builder.EndRow();

                        //第三行
                        builder.InsertCell();

                        //此单元格与上一行单元格合并
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
                        builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = imgcellwidth;
                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = cellwidth;
                        builder.Write("单位电话:"+rows[i]["DWDH"].ToString());

                        builder.InsertCell();

                        //此单元格与上一行单元格合并
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
                        builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = imgcellwidth;
                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.Width = cellwidth;
                        if (rows.Length > i + 1)
                        {
                            builder.Write("单位电话:"+rows[i+1]["DWDH"].ToString());
                        }
                        builder.EndRow();

                        //第四行
                        builder.InsertCell();

                        //此单元格与上一行单元格合并
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
                        builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = imgcellwidth;
                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = cellwidth;
                        builder.Write("手机:"+rows[i]["SJHM"].ToString());

                        builder.InsertCell();

                        //此单元格与上一行单元格合并
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
                        builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = imgcellwidth;
                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.Width = cellwidth;
                        if (rows.Length > i + 1)
                        {
                            builder.Write("手机:"+rows[i+1]["SJHM"].ToString());
                        }
                        builder.EndRow();

                        //第五行
                        builder.InsertCell();

                        //此单元格与上一行单元格合并
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
                        builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = imgcellwidth;
                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = cellwidth;
                        builder.Write("邮编:"+rows[i]["DWYB"].ToString());

                        builder.InsertCell();

                        //此单元格与上一行单元格合并
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
                        builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = imgcellwidth;
                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.Width = cellwidth;
                        if (rows.Length > i + 1)
                        {
                            builder.Write("邮编:"+rows[i+1]["DWYB"].ToString());
                        }
                        builder.EndRow();

                        //第六行
                        builder.InsertCell();

                        //此单元格与上一行单元格合并
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
                        builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = imgcellwidth;
                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = cellwidth;
                        builder.Write("Email:"+rows[i]["DZYJ"].ToString());

                        builder.InsertCell();

                        //此单元格与上一行单元格合并
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
                        builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Width = imgcellwidth;
                        builder.InsertCell();
                        builder.RowFormat.Height = cellheight;
                        builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
                        builder.CellFormat.Borders.LineStyle = LineStyle.Single;
                        builder.CellFormat.Width = cellwidth;
                        if (rows.Length > i + 1)
                        {
                            builder.Write("Email:"+rows[i+1]["DZYJ"].ToString());
                        }
                        builder.EndRow();
                    }
                }
                builder.EndTable();
            }
            string name = "学员通讯录.doc";

            //以下载Word的形式打开Wrod

            //如图所示:Aspose.Words导出带图片人员信息到Word中
            doc.Save(name, Aspose.Words.SaveFormat.Doc, Aspose.Words.SaveType.OpenInWord, Response);

}

4.整体效果如图所示:

Aspose.Words导出带图片人员信息到Word中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值