溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#運(yùn)用DocX操作文檔

發(fā)布時間:2020-07-27 08:03:36 來源:網(wǎng)絡(luò) 閱讀:900 作者:彭澤0902 欄目:編程語言

  在項目開發(fā)中,一般需要對文檔進(jìn)行操作,但是使用微軟提供的插件,需要安裝一些程序,并且如果使用wps類的文檔軟件就無法操作了,第三方插件DocX就可以很好的解決這些文檔,結(jié)合官方提供的文檔,稍作修改,總結(jié)如下的一些方法:

    1.創(chuàng)建一個具有超鏈接、圖像和表的文檔:

        /// <summary>
        /// 創(chuàng)建一個具有超鏈接、圖像和表的文檔。
        /// </summary>
        /// <param name="path">文檔保存路徑</param>
        /// <param name="p_w_picpathPath">加載的圖片路徑</param>
        public static void HyperlinksImagesTables(string path, string p_w_picpathPath)
        {
            // 創(chuàng)建一個文檔
            using (var document = DocX.Create(path))
            {
                // 在文檔中添加超鏈接。
                var link = document.AddHyperlink("link", new Uri("http://www.google.com"));
                // 在文檔中添加一個表。
                var table = document.AddTable(2, 2);
                table.Design = TableDesign.ColorfulGridAccent2;
                table.Alignment = Alignment.center;
                table.Rows[0].Cells[0].Paragraphs[0].Append("1");
                table.Rows[0].Cells[1].Paragraphs[0].Append("2");
                table.Rows[1].Cells[0].Paragraphs[0].Append("3");
                table.Rows[1].Cells[1].Paragraphs[0].Append("4");
                var newRow = table.InsertRow(table.Rows[1]);
                newRow.ReplaceText("4", "5");
                // 將圖像添加到文檔中。    
                var p_w_picpath = document.AddImage(p_w_picpathPath);
                //創(chuàng)建一個圖片(一個自定義視圖的圖像)。
                var picture = p_w_picpath.CreatePicture();
                picture.Rotation = 10;
                picture.SetPictureShape(BasicShapes.cube);
                // 在文檔中插入一個新段落。
                var title = document.InsertParagraph().Append("Test").FontSize(20).Font(new FontFamily("Comic Sans MS"));
                title.Alignment = Alignment.center;
                // 在文檔中插入一個新段落。
                var p1 = document.InsertParagraph();
                // 附加內(nèi)容到段落
                p1.AppendLine("This line contains a ").Append("bold").Bold().Append(" word.");
                p1.AppendLine("Here is a cool ").AppendHyperlink(link).Append(".");
                p1.AppendLine();
                p1.AppendLine("Check out this picture ").AppendPicture(picture).Append(" its funky don't you think?");
                p1.AppendLine();
                p1.AppendLine("Can you check this Table of figures for me?");
                p1.AppendLine();
                // 在第1段后插入表格。
                p1.InsertTableAfterSelf(table);
                // 在文檔中插入一個新段落。
                Paragraph p2 = document.InsertParagraph();
                // 附加內(nèi)容到段落。
                p2.AppendLine("Is it correct?");
                // 保存當(dāng)前文檔
                document.Save();
            }
        }

2.設(shè)置文檔的標(biāo)題和頁腳:

        /// <summary>
        /// 設(shè)置文檔的標(biāo)題和頁腳
        /// </summary>
        /// <param name="path">文檔的路徑</param>
        public static bool HeadersAndFooters(string path)
        {
            try
            {
                // 創(chuàng)建新文檔
                using (var document = DocX.Create(path))
                {
                    // 這個文檔添加頁眉和頁腳。
                    document.AddHeaders();
                    document.AddFooters();
                    // 強(qiáng)制第一個頁面有一個不同的頭和腳。
                    document.DifferentFirstPage = true;
                    // 奇偶頁頁眉頁腳不同
                    document.DifferentOddAndEvenPages = true;
                    // 獲取本文檔的第一個、奇數(shù)和甚至是頭文件。
                    Header headerFirst = document.Headers.first;
                    Header headerOdd = document.Headers.odd;
                    Header headerEven = document.Headers.even;
                    // 獲取此文檔的第一個、奇數(shù)和甚至腳注。
                    Footer footerFirst = document.Footers.first;
                    Footer footerOdd = document.Footers.odd;
                    Footer footerEven = document.Footers.even;
                    // 將一段插入到第一個頭。
                    Paragraph p0 = headerFirst.InsertParagraph();
                    p0.Append("Hello First Header.").Bold();
                    // 在奇數(shù)頭中插入一個段落。
                    Paragraph p1 = headerOdd.InsertParagraph();
                    p1.Append("Hello Odd Header.").Bold();
                    // 插入一個段落到偶數(shù)頭中。
                    Paragraph p2 = headerEven.InsertParagraph();
                    p2.Append("Hello Even Header.").Bold();
                    // 將一段插入到第一個腳注中。
                    Paragraph p3 = footerFirst.InsertParagraph();
                    p3.Append("Hello First Footer.").Bold();
                    // 在奇數(shù)腳注中插入一個段落。
                    Paragraph p4 = footerOdd.InsertParagraph();
                    p4.Append("Hello Odd Footer.").Bold();
                    // 插入一個段落到偶數(shù)頭中。
                    Paragraph p5 = footerEven.InsertParagraph();
                    p5.Append("Hello Even Footer.").Bold();
                    // 在文檔中插入一個段落。
                    Paragraph p6 = document.InsertParagraph();
                    p6.AppendLine("Hello First page.");
                    // 創(chuàng)建一個第二個頁面,顯示第一個頁面有自己的頭和腳。
                    p6.InsertPageBreakAfterSelf();
                    // 在頁面中斷后插入一段。
                    Paragraph p7 = document.InsertParagraph();
                    p7.AppendLine("Hello Second page.");
                    // 創(chuàng)建三分之一頁面顯示,奇偶頁不同的頁眉和頁腳。
                    p7.InsertPageBreakAfterSelf();
                    // 在頁面中斷后插入一段。
                    Paragraph p8 = document.InsertParagraph();
                    p8.AppendLine("Hello Third page.");
                    // 將屬性保存入文檔
                    document.Save();
                    return true;
                }

            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            //從內(nèi)存中釋放此文檔。
        }


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI