C#读取word中表格数据的方法实现

yizhihongxing

C#读取word中表格数据的方法实现

在C#中读取Word中表格数据,可以通过Microsoft.Office.Interop.Word库中提供的API来实现。下面是具体的实现方法。

步骤一:引用Microsoft.Office.Interop.Word库

在C#项目中添加Microsoft.Office.Interop.Word库的引用,引用方法如下:

  1. 在 Visual Studio 解决方案资源管理器中,右键单击“引用”,然后单击“添加引用”。
  2. 在“添加引用”窗口中,展开“COM”节点并勾选“Microsoft Word 16.0 Object Library”(或对应 Office 版本),然后单击“确定”按钮进行引用。

步骤二:实现读取表格数据的方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Word = Microsoft.Office.Interop.Word;

namespace WordTableReader
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePath = @"C:\Test.docx"; // Word文档路径
            int tableIndex = 1; // 表格序号
            var table = GetTable(filePath, tableIndex); // 读取表格数据
            Console.WriteLine("表格数据:");
            foreach (var row in table)
            {
                foreach (var cell in row)
                {
                    Console.Write($"{cell}\t");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }

        static List<List<string>> GetTable(string filePath, int tableIndex)
        {
            List<List<string>> table = new List<List<string>>();
            Word.Application application = new Word.Application();
            Word.Document document = null;
            try
            {
                document = application.Documents.Open(filePath);
                Word.Table wTable = document.Tables[tableIndex];
                int rows = wTable.Rows.Count;
                int cols = wTable.Columns.Count;
                for (int i = 1; i <= rows; i++)
                {
                    List<string> row = new List<string>();
                    for (int j = 1; j <= cols; j++)
                    {
                        row.Add(wTable.Cell(i, j).Range.Text.Replace("\r\a", ""));
                    }
                    table.Add(row);
                }
            }
            finally
            {
                document?.Close();
                application.Quit();
            }
            return table;
        }
    }
}

上述代码中,GetTable()方法接收Word文档路径和表格序号作为参数,并返回List>类型的表格数据。在Main()方法中调用GetTable()方法读取表格数据,并输出到控制台。

示例一:读取Word文档中第一个表格数据

string filePath = @"C:\Test.docx"; // Word文档路径
int tableIndex = 1; // 表格序号
var table = GetTable(filePath, tableIndex); // 读取表格数据
Console.WriteLine("表格数据:");
foreach (var row in table)
{
    foreach (var cell in row)
    {
        Console.Write($"{cell}\t");
    }
    Console.WriteLine();
}

示例二:读取Word文档中第二个表格数据

string filePath = @"C:\Test.docx"; // Word文档路径
int tableIndex = 2; // 表格序号
var table = GetTable(filePath, tableIndex); // 读取表格数据
Console.WriteLine("表格数据:");
foreach (var row in table)
{
    foreach (var cell in row)
    {
        Console.Write($"{cell}\t");
    }
    Console.WriteLine();
}

在上述示例中,只需将tableIndex值修改为对应的表格序号即可读取相应的表格数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#读取word中表格数据的方法实现 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • C# Linq的Contains()方法 – 确定序列是否包含指定的元素

    当我们在处理集合数据时,可能经常用到判断某个元素是否在集合中的需求。这时,Linq中的Contains()方法就可以派上用场了。在本次攻略中,我们将详细讲解C# Linq的Contains()方法。 一、Contains()方法是什么 Contains()方法是Linq中用于判断某个元素是否在集合中的方法。其返回值为bool类型,true表示元素在集合中,f…

    C# 2023年4月19日
    00
  • C# 中的List.Sort()–集合排序方法全面解析

    C#中的List.Sort()–集合排序方法全面解析 1. 概述 在C#开发中,List 是常见的一种集合类型,其提供了一个 Sort() 方法来实现对集合的排序。本篇文章主要介绍 List 中的 Sort() 方法的功能及相关使用技巧。 2. 功能说明 List 中的Sort()方法用于对集合进行排序。默认情况下,Sort()方法按照升序对集合进行排序,…

    C# 2023年5月15日
    00
  • C#的FileSystemWatcher用法实例详解

    C# 的 FileSystemWatcher 类是一种监控文件变化的工具,允许我们监控一个特定的文件或者目录中的任一更改,比如内容修改、新增、删除等行为。下面,我将详细讲解 FileSystemWatcher 的使用方法,并附带两个示例说明。 前置条件 在使用 FileSystemWatcher 类之前,需要先引入 System.IO 命名空间,以便于访问所…

    C# 2023年6月1日
    00
  • c# SendMail发送邮件实例代码

    下面详细讲解一下“c# SendMail发送邮件实例代码”的完整攻略。 什么是SendMail? SendMail是c#中一个邮件发送类,可以方便地实现发送邮件的功能。它的使用方法较为简单,只需要按照一定格式配置SMTP服务器和发件人信息,即可完成邮件的发送。 SendMail使用教程 配置SMTP服务器 在使用SendMail发送邮件前,需要首先配置SMT…

    C# 2023年6月7日
    00
  • C#中DataSet转化为实体集合类的方法

    将C#中的DataSet转化为实体集合类的方法涉及到数据集合类和实体类之间的转换。下面是实现这个过程的攻略: 步骤一:创建实体类 首先,我们需要创建实体类。这个类必须符合我们数据库中表的结构。一个简单的实体类示例如下: public class User { public int Id { get; set; } public string Name { g…

    C# 2023年6月3日
    00
  • 详解ASP.NET Core端点路由的作用原理

    在 ASP.NET Core 中,端点路由是将 HTTP 请求映射到处理程序的机制。端点路由的作用是将请求路由到正确的处理程序,以便处理程序可以处理请求并生成响应。以下是详解 ASP.NET Core 端点路由的完整攻略: 步骤一:定义端点 在 ASP.NET Core 项目中,需要定义一个或多个端点来处理 HTTP 请求。可以使用 Map* 方法来定义端点…

    C# 2023年5月17日
    00
  • c# 进程之间的线程同步

    C# 进程之间的线程同步 在多进程场景下,各进程和进程内的线程之间需要协同工作才能完成任务。线程同步是一种常见的线程协同机制,其目的在于控制多个线程之间的相互作用,避免出现线程间的竞争关系或者死锁。 线程同步机制 常见的线程同步机制包括:mutex、semaphore、monitor、event 等。 Mutex Mutex 是一种二进制锁,即该锁只有两种状…

    C# 2023年6月6日
    00
  • c#中task与thread的区别及使用讲解

    C#中Task与Thread的区别及使用讲解 在 C# 中,Task 和 Thread 是比较常用的多线程编程方式。Task 是从 .NET Framework 4.0 开始引入的新特性,主要用于异步编程;而 Thread 则是比较传统的多线程编程方式。 区别 1. 创建方式和语法 Task 的创建可以使用 Task 类、Task.Factory 或 asy…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部