首页 > 代码库 > csharp: Aspose.Words create table

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());            }        }

 

csharp: Aspose.Words create table