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

概述

Text Box(文本框)是Word排版的工具之一。在Word文档中的任何地方插入文本框,可添加补充信息,放在合适的位置,也不会影响正文的连续性。我们可以设置文本框的大小,线型,内部边距,背景填充等效果。文本框内可以图文混排,设置字体,字号,图片大小、文字链接,绘入表格等。
在下面的示例中,将分为两部分来介绍在Word中插入文本框,分别是:
第一部分:插入图文混排的文本框,包含图片填充,内部边距,图文混排、文字超链接等元素
第二部分:关于在文本框中插入表格、读取表格、删除表格等操作


使用工具

示例操作

示例一】添加图文混排的文本框
C#

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 支持多种不同的表格类型,可根据需要自行选择。

表格插入效果:

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

读取结果:

3.删除表格

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

删除结果:

以上全部内容为本次关于“C#操作Word文本框”的全部内容。如需转载,请注明出处。
感谢阅读!

原文地址:http://blog.51cto.com/eiceblue/2119114

时间: 2024-11-06 14:56:21

C# 操作Word文本框——插入图片、表格、文字、超链接等的相关文章

Java 添加Word文本框

在Word中,文本框是指一种可移动.可调节大小的文字或图形容器.我们可以向文本框中添加文字.图片.表格等对象,下面,将通过Java编程来实现添加以上对象到Word文本框. 使用工具:Free Spire.Doc for Java (免费版) Jar文件获取及导入: 方法1:通过官网下载获取jar包.下载后,解压文件,并将lib文件夹下的Spire.Doc.jar文件导入Java程序.(如下图) 方法2:通过maven仓库安装导入. Java代码示例 import com.spire.doc.*;

【excel技巧读书笔记002】批注插入图片表格

               今天看到学到一个excel小技巧,批注插入图片表格,觉得挺好分享给大家.

如何让input文本框和图片对齐

如何让input文本框和图片对齐:在默认情况下,input文本框和图片无法垂直居中,总会有所偏差,下面就介绍一下如何实现此效果.代码如下: <input id="qq" name="qq" style="width:100px;vertical-align:middle" /> <img border="0" style="vertical-align:middle"/> 只要给元素

Rdlc技巧,rdlc报表中获取文本框或某个表格单元格中的内容

在RDLC报表中,随意摆放的控件,排列看起来很整齐,但是生成WEB后看就不是很友好了,导出PDF可能又是一个样, 解决这个办法就是把这些摆放在一个容器内,比如Table 内 用ReportItems这个属性来取value值.细节如下 =ReportItems!textbox1.Value + ReportItems!textbox12.Value 注意,页头页脚可以取Body里的值,但是Body里不可以取页头与页脚的值 Rdlc技巧,rdlc报表中获取文本框或某个表格单元格中的内容

操作富文本框

富文本框常见的技术用到了Frame标签,并且在Frame里面实现了一个完整的HTML网页结构. 方法一: #!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : [email protected] """ #操作富文本框 from selenium import webdriver import unittest,traceback,time

可编辑DIV (contenteditable=&quot;true&quot;) 在鼠标光标处插入图片或者文字

近期需开发一个DIV做的编辑器,插入表情图片可直接预览效果,仔细参考了下百度贴吧的过滤粘贴过来文件的THML代码,自己整理了下.写出来只是和大家分享下,我自己也不大懂,经过努力,幸好搞定. 蛋疼的事情出来了,当编辑框失去焦点时候,再插入图片时候总是插入在最前面(谷歌和火狐,IE没问题).还没搞定,,, <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/

页眉插入图片,文字和页号(码)的设置

毕业设计word排版 页眉插入图片,文字和页号(码)的设置 选择插入,点击插入页眉,可以选择"空白三栏", 然后在键入的地方可以选择插入图片,中间可以输入你的页眉,最右边可以输入页码. 在最右边输入页码时,首先把鼠标放在你要输入页码的位置上,然后点击页码,选择当前位置,再选择相应的格式就可以实现在页眉上同时具有图片.文字和页码了 原文地址:https://www.cnblogs.com/notstandalone/p/12336087.html

2.4.5 用NPOI操作EXCEL--插入图片

我们知道,在Excel中是可以插入图片的.操作菜单是“插入->图片”,然后选择要插入图片,可以很容易地在Excel插入图片.同样,在NPOI中,利用代码也可以实现同样的效果.在NPOI中插入图片的方法与画图的方法有点类似: //add picture data to this workbook.byte[] bytes = System.IO.File.ReadAllBytes(@"D:\MyProject\NPOIDemo\ShapeImage\image1.jpg");int

webdriver高级应用- 操作富文本框

富文本框的技术实现和普通的文本框的定位存在较大的区别,富文本框的常见技术用到了Frame标签,并且在Frame里面实现了一个完整的HTML网页结构,所以使用普通的定位模式将无法直接定位到富文本框对象. 方法一:调用WebDriver的send_key()方法实现 #encoding=utf-8 from selenium import webdriver import unittest, time, traceback from selenium.webdriver.support.ui imp