C# 操作docx文档

 一、需要引用DocX类库文件,可以直接在NuGet中找到。

 二、创建文件,并添加一张表格

        public static string fileName = AppDomain.CurrentDomain.BaseDirectory + "youziku-5.doc";

        public static bool ExistsFile()
        {
            try
            {
                if (File.Exists(fileName)) return true;
                //创建文件
                File.Create(fileName).Close();
using (var document = DocX.Create(fileName)) {
//创建一个1行3列的表格 var table = document.AddTable(1, 3); table.Design = TableDesign.LightList;//边框 table.Alignment = Alignment.center; table.Rows[0].Cells[0].Paragraphs[0].Append("字体名称"); table.Rows[0].Cells[1].Paragraphs[0].Append("字体效果"); table.Rows[0].Cells[2].Paragraphs[0].Append("字体厂商"); var p1 = document.InsertParagraph(); p1.InsertTableAfterSelf(table); // 保存当前文档 document.Save(); } return true; } catch (Exception ex) { Console.WriteLine(ex.Message); return false; } }

三、向表格中追加数据 

  public static string Set(string fontName, string fontCompany)
        {
            try
            {
                //如果不存在文件则创建
                var result = ExistsFile();
                if (!result) return TAjaxCallBack.ERROR;
                using (var document = DocX.Load(fileName))
                {
                    var imgpath = AppDomain.CurrentDomain.BaseDirectory +  "123.png";
                    // 将图像添加到文档中。    
                    var image = document.AddImage(imgpath);
                    var picture = image.CreatePicture();

                    var table = document.Tables[0];
                    var count = table.RowCount;
                    table.InsertRow();
                    table.Rows[count].Cells[0].Paragraphs[0].Append(fontName);
                    table.Rows[count].Cells[1].Paragraphs[0].AppendPicture(picture);
                    table.Rows[count].Cells[2].Paragraphs[0].Append(fontCompany);
                    document.Save();
                }

                return TAjaxCallBack.OK;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return TAjaxCallBack.ERROR;
            }
        }

四、查询及删除  

  

  public void Set()
        {
            try
            {
                using (var document = DocX.Load(path))
                {
                    //获取表格
                    var table = document.Tables[0] as Table;
                    //总条数
                    var count = table.RowCount;

                    //查询列表中的数据
                    foreach (var item in table.Rows)
                    {
                        var str1 = item.Cells[0].Paragraphs[0].Text;
                        var str2 = item.Cells[1].Paragraphs[0].Text;
                        var str3 = item.Cells[2].Paragraphs[0].Text;
                    }

                    //获取其中的一条数据
                    var tableItem = table.Rows.FirstOrDefault(a => a.Cells[0].Paragraphs[0].Text == "书体坊向佳红毛笔行书");
                    var p = tableItem?.Cells[0].Paragraphs[0].Text;

                    //删除数据
                  table.Rows.RemoveAt(1);


                    document.Save();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);

            }

        }

 

 更多关于操作docx文件:https://blog.csdn.net/Eiceblue/article/details/78409116

posted @ 2018-07-05 16:21  逍遥帝君  阅读(3007)  评论(0编辑  收藏  举报