C# 操作Word文本框——插入圖片、表格、文字、超鏈接等

概述

Text Box(文本框)是Word排版的工具之一。在Word文檔中的任何地方插入文本框,可添加補充信息,放在合適的位置,也不會影響正文的連續性。我們可以設置文本框的大小,線型,內部邊距,背景填充等效果。文本框內可以圖文混排,設置字體,字號,圖片大小、文字鏈接,繪入表格等。

在下面的示例中,將分爲兩部分來介紹Word中插入文本框:

第一部分:插入圖文混排的文本框,包括圖片填充、內部邊距設置、圖文混排、文字超鏈接等元素

第二部分:如何在Word文本框中插入表格、讀取表格、刪除表格

 

使用工具

示例操作

【示例1】添加圖文混排的文本框

using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
using Spire.Doc.Fields;

namespace AddTextBox_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //實例化Document類,並加載Word文檔
            Document document = new Document();
            document.LoadFromFile("Sample.docx");

            //獲取首個section中的第一個Paragraph,並添加指定大小的文本框
            TextBox TB = document.Sections[0].Paragraphs[0].AppendTextBox(180, 340);
            //指定文本框在頁面中的位置
            TB.Format.HorizontalOrigin = HorizontalOrigin.Page;
            TB.Format.HorizontalPosition = 330;
            TB.Format.VerticalOrigin = VerticalOrigin.Page;
            TB.Format.VerticalPosition = 110;

            //設置文本環繞方式
            TB.Format.TextWrappingStyle = TextWrappingStyle.Square;
            TB.Format.TextWrappingType = TextWrappingType.Both;

            //格式化文本框
            TB.Format.LineStyle = TextBoxLineStyle.Double;
            TB.Format.LineColor = Color.Black;
            TB.Format.LineDashing = LineDashing.Solid;
            TB.Format.LineWidth = 3;
            TB.Format.InternalMargin.Top = 15;
            TB.Format.InternalMargin.Bottom = 10;
            TB.Format.InternalMargin.Left = 12;
            TB.Format.InternalMargin.Right = 10;

            //加載圖片並填充圖片作爲文本框背景
            TB.Format.FillEfects.Type = BackgroundType.Picture;
            TB.Format.FillEfects.Picture = Image.FromFile(@"C:\Users\Administrator\Desktop\1.jpg");

            //添加段落1到文本框,並添加文本,設置文本格式
            Paragraph para1 = TB.Body.AddParagraph();
            para1.Format.AfterSpacing = 6;
            para1.Format.HorizontalAlignment = HorizontalAlignment.Center;
            TextRange TR1 = para1.AppendText("The TIMES");
            TR1.CharacterFormat.FontName = "Andalus";
            TR1.CharacterFormat.FontSize = 12;
            TR1.CharacterFormat.TextColor = Color.Black;
            //添加段落2,加載圖片並設置圖片大小、位置
            Paragraph para2 = TB.Body.AddParagraph();
            Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\The times.jpg");
            DocPicture picture = para2.AppendPicture(image);
            picture.Width = 120;
            picture.Height = 160;
            para2.Format.AfterSpacing = 8;
            para2.Format.HorizontalAlignment = HorizontalAlignment.Center;
            //添加段落3,插入文本並設置格式
            Paragraph para3 = TB.Body.AddParagraph();
            TextRange TR2 = para3.AppendText("The Times is the first newspaper to have borne that name, lending it to numerous other papers around the world, such as The Times of India and The New York Times. ");
            TR2.CharacterFormat.FontName = "Cambria";
            TR2.CharacterFormat.FontSize = 10;
            para3.Format.LineSpacing = 15;
            para3.Format.HorizontalAlignment = HorizontalAlignment.Left;
            //插入超鏈接到指定字符串
            para3.Format.SuppressAutoHyphens = true;
            para3.AppendHyperlink("https://en.wikipedia.org/wiki/The_Times", "See more", HyperlinkType.WebLink);

            //保存並打開文檔
            document.SaveToFile("Result.docx");
            System.Diagnostics.Process.Start("Result.docx"); 
        }
    }
}

 文本框添加效果:


 

【示例2】Word文本框中插入表格、讀取文本框中的表格、刪除表格

1.插入表格

C#

using Spire.Doc;
using Spire.Doc.Documents; 
using Spire.Doc.Fields; 

namespace InsertTableToTextbox_Doc
{
    class Program
    {
        static void Main(string[] args)
        {

            //創建一個Document類對象
            Document document = new Document();

            //添加section到文檔
            Section section = document.AddSection();
            //添加段落section
            Paragraph paragraph = section.AddParagraph();

            //添加指定大小的文本框到段落
            TextBox textbox = paragraph.AppendTextBox(300, 100);

            //添加文本到文本,設置文本格式
            Paragraph textboxParagraph = textbox.Body.AddParagraph();
            TextRange textboxRange = textboxParagraph.AppendText("Sample Report 1");
            textboxRange.CharacterFormat.FontName = "Arial";

            //插入表格到文本框
            Table table = textbox.Body.AddTable(true);
            //指定表格行數、列數
            table.ResetCells(4, 4);
            //實例化數組內容
            string[,] data = new string[,]  
            {  
               {"Name","Age","Gender","ID" },  
               {"John","28","Male","0023" },  
               {"Steve","30","Male","0024" },  
               {"Lucy","26","female","0025" }  
            };

            //將數組內容添加到表格 
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    TextRange tableRange = table[i, j].AddParagraph().AppendText(data[i, j]);
                    tableRange.CharacterFormat.FontName = "Arial";
                }
            }

            //應用表格樣式
            table.ApplyStyle(DefaultTableStyle.MediumGrid3Accent1);

            //保存並打開文檔
            document.SaveToFile("Output.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("Output.docx");
        }
    }
}

 

這裏應用表格格式,Spire.Doc 支持多種不同的表格類型,可根據需要自行選擇。



 

表格添加效果:


 【示例3】讀取文本框中的表格

C#

 

【示例2】讀取文本框中的表格
C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.IO;
using System.Text;

namespace GetTableFromTextbox_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //載入Word文檔
            Document document = new Document("Output.docx");

            //獲取第一個文本框
            TextBox textbox = document.TextBoxes[0];

            //獲取文本框中第一個表格
            Table table = textbox.Body.Tables[0] as Table;
            //實例化StringBuilder類
            StringBuilder sb = new StringBuilder();

            //遍歷表格中的段落並提取文本
            foreach (TableRow row in table.Rows)
            {
                foreach (TableCell cell in row.Cells)
                {
                    foreach (Paragraph paragraph in cell.Paragraphs)
                    {
                        sb.AppendLine(paragraph.Text);
                    }
                }
            }
            File.WriteAllText("text.txt", sb.ToString());
        }
    }
}

 讀取結果:

 


 

 

【示例4】刪除Word文本框中的表格

 

C#

using Spire.Doc;
using Spire.Doc.Fields;

namespace RemoveTableFormTextbox_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //創建Document實例
            Document document = new Document("Output.docx");

            //獲取第一個文本框
            TextBox textbox = document.TextBoxes[0];

            //刪除文本框中第一個表格
            textbox.Body.Tables.RemoveAt(0);

            //保存文檔
            document.SaveToFile("RemoveTable.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("RemoveTable.docx");
        }
    }
}

 

刪除效果:

以上全部內容爲本次關於操作Word文本框的全部內容,如需轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章