• csharp: Aspose.Words create table


     /// <summary>
            /// 20141118
            /// Geovin Du
            /// Aspose.Words创建表
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void Page_Load(object sender, EventArgs e)
            {
                try
                {
                    //实例化一个新的Word Document
    
                    //也可以在Aspose.Words.Document doc = newAspose.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();
    
                    DataTable tbl = new DataTable();// m_db.GetDataTable(sql, m_cn);
                    tbl.Columns.Add("XZ", typeof(int));
                    tbl.Columns.Add("ZPPATH", typeof(string));
                    tbl.Columns.Add("XM", typeof(string));
                    tbl.Columns.Add("SZDW", typeof(string));
                    tbl.Columns.Add("DWDH", typeof(string));
                    tbl.Columns.Add("SJHM", typeof(string));
                    tbl.Columns.Add("DWYB", typeof(string));
                    tbl.Columns.Add("DZYJ", typeof(string));
    
                    tbl.Rows.Add(1, "", "geovindu", "缔友计算机信息技术有限公司;软件工程师", "82397501", "13824350518", "518003", "463588883@qq.com");
                    tbl.Rows.Add(2, "", "涂年生","缔创智能工程技术有限公司;网络工程师", "82397502", "13824350518", "518003", "geovindu@qq.com");
                    tbl.Rows.Add(3, "", "涂聚文", "缔建智能建筑工程有限公司;UI设计师", "82397503", "13824350518", "518003", "463588883@qq.com");
    
    
                    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.ParagraphFormat.Alignment = ParagraphAlignment.Center; // 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.Saving.HtmlSaveOptions options = new Aspose.Words.Saving.HtmlSaveOptions(SaveFormat.Html);
                    Aspose.Words.Saving.DocSaveOptions docoptions = new Aspose.Words.Saving.DocSaveOptions(SaveFormat.Doc);
                    //如图所示:Aspose.Words导出带图片人员信息到Word中
                    //doc.Save(name, Aspose.Words.SaveFormat.Doc, Aspose.Words.SaveType.OpenInWord, Response);
                    doc.Save(Page.Response, name, ContentDisposition.Attachment, docoptions);//13.3.1
    
                }
                catch (Exception ex)
                {
                    Response.Write(ex.Message.ToString());
                }
    
            }
    

    参考:http://www.cnblogs.com/wuhuacong/archive/2013/02/05/2893191.html

     /// <summary>
            /// 20141118
            /// Geovin Du
            /// Aspose.Words模板操作
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void Page_Load(object sender, EventArgs e)
            {
                try
                {
                    Dictionary<string, string> dictSource = new Dictionary<string, string>();
                    dictSource.Add("TIS_HANDLE_NO", "T0001");
                    dictSource.Add("ACCUSE_INDUSTRY", "出租车");
                    dictSource.Add("ACCUSER_NAME", "张三");
                    dictSource.Add("ACCUSER_COMPANY", "缔友计算机信息技术有限公司");
                    dictSource.Add("ACCUSER_ID", "8888888888888");
                    dictSource.Add("COME_TEL", "82397507");
                    dictSource.Add("ACCUSER_ADDRESS", "深圳市罗湖区");
                    dictSource.Add("ACCUSER_ZIPCODE", "518003");
                    dictSource.Add("TO_DEPARTMENT", "六福");
                    dictSource.Add("TAXI_DEPT", "资讯科技部");
                    dictSource.Add("CONTENT", "生活如水,没有薪水发");
                    dictSource.Add("MEMO", "好来好样的");
                    dictSource.Add("FOREMANID", "李四");
                    dictSource.Add("HANDLE_TIME", "2014年11月18日下午6:00");
                    string templateFile = Server.MapPath("Advice.doc");  //现有模板文件
                    Aspose.Words.Document doc = new Aspose.Words.Document(templateFile);
    
                    //使用文本方式替换
                    foreach (string name in dictSource.Keys)
                    {
                        //doc.Range.Replace(name, dictSource[name], true, true);
    
                        Aspose.Words.Bookmark bookmarkd = doc.Range.Bookmarks[name];//插入的书签名
                        foreach (KeyValuePair<string, string> kvp in dictSource)
                        {
                            
                            if (bookmarkd != null)
                            {
                                if (name == kvp.Key)
                                {
                                    bookmarkd.Text = kvp.Value;
                                }
                                
                            }
                        }
    
                       
                        bookmarkd = doc.Range.Bookmarks[name];
    
                    }
    
                    #region 使用书签替换模式
    
                    Aspose.Words.Bookmark bookmark = doc.Range.Bookmarks["ACCUSER_SEX"];
                    if (bookmark != null)
                    {
                        bookmark.Text = "男";
                    }
                    bookmark = doc.Range.Bookmarks["ACCUSER_TEL"];
                    if (bookmark != null)
                    {
                        bookmark.Text = "1862029207*";
                    }
    
                    #endregion
                    Aspose.Words.Saving.DocSaveOptions docoptions = new Aspose.Words.Saving.DocSaveOptions(SaveFormat.Doc);
                    doc.Save(Page.Response, "testAdvice.doc", Aspose.Words.ContentDisposition.Attachment,
                       docoptions);//Aspose.Words.Saving.SaveOptions.CreateSaveOptions(Aspose.Words.SaveFormat.Doc)
                }
                catch (Exception ex)
                {
                    Response.Write(ex.Message.ToString());
                }
            }
    
  • 相关阅读:
    Eclipse(MyEclipse)使用技巧——改动凝视字体大小
    C++标准库之 Lower_Bound, upper_Bound
    Mongodb地理空间索引
    AfxMessageBox和MessageBox差别
    具体解释VB中连接access数据库的几种方法
    C++中this指针的使用方法.
    秒杀多线程第四篇 一个经典的多线程同步问题
    设计模式学习03—抽象工厂模式
    Neutron中的Service类
    Opencv学习笔记(六)SURF学习笔记
  • 原文地址:https://www.cnblogs.com/geovindu/p/4106418.html
Copyright © 2020-2023  润新知