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

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#贪吃蛇游戏实现分析

    C#贪吃蛇游戏实现分析 简介 贪吃蛇是一种经典的游戏,它简单而有趣,很适合拿来练习编程的基础功底。这篇文章主要介绍如何用C#来实现一个贪吃蛇游戏。 实现思路 数据结构 贪吃蛇游戏中的核心数据结构是“蛇”。一条蛇由若干个“节点”组成,每个节点表示蛇身的一部分。为了表示一个蛇,我们可以使用一个“链表”来存储这些节点。 除此之外,还需要记录蛇的方向、蛇的长度以及食…

    C# 2023年6月6日
    00
  • C# GetHashCode():获取此实例的哈希代码

    C#中的GetHashCode()方法用于获取对象的哈希码(HashCode)。哈希码是一种用于快速识别对象的整数。哈希码的计算方法是将对象中各种不同类型的值转换成32位整数。通常,我们使用哈希表来操作对象。哈希表将哈希码作为索引,通过哈希码查找对象,这样可以非常快速地定位到对象。 以下是使用GetHashCode()方法的一些示例: 示例1: class …

    C# 2023年4月19日
    00
  • C#中读取App.config配置文件代码实例

    下面就给您详细讲解一下在C#中读取App.config配置文件的完整攻略。 什么是App.config? 在C#项目中,App.config是存放配置信息的文件,经常用来保存应用程序的配置信息,比如数据库连接字符串、路径等等。在项目中对于一些数据的统一管理是非常有用的,修改方便,且使用配置文件时只需要修改App.config即可不用修改代码。 读取App.c…

    C# 2023年6月1日
    00
  • ASP.NET C#中Application的用法教程

    下面是ASP.NET C#中Application的用法教程的完整攻略: 什么是 Application? 在 ASP.NET C# 中,Application 可以理解为全局变量,它在整个应用程序范围内都可用。Application 可以存储和访问应用程序的常用的数据,并在不同的页面和会话之间共享这些数据。 如何使用 Application? 在 C# 中…

    C# 2023年5月15日
    00
  • 利用Arduino制作音乐播放+随节奏闪光仪器实现

    1.实验器材 Arduino开发板,面包板一块,杜邦线若干,LED灯若干,220欧电阻若干,蜂鸣器一个。 2.实验操作 将六个led灯的正极依次接到arduino板I/O接口的2-7口, 电源负极依分别接一个220欧的电阻 。 整体负极接arduino板的GND接口。 蜂鸣器正极接arduino板I/O接口的8口,负极接GND。 3.代码实现 int buz…

    C# 2023年4月25日
    00
  • c++函数转c#函数示例程序分享

    C++和C#是两种不同的编程语言,它们的函数调用方式和语法都有所不同。在将C++函数转换为C#函数时,需要注意语法和参数传递方式的差异。本文将介绍如何将C++函数转换为C#函数,并提供两个示例程序。 示例一:C++函数转C#函数 以下是一个C++函数的示例: int Add(int a, int b) { return a + b; } 在上面的示例中,我们…

    C# 2023年5月15日
    00
  • c# 死锁和活锁的发生及避免

    C# 死锁和活锁的发生及避免攻略 什么是死锁和活锁 死锁和活锁都是多线程并发编程中经常遇到的问题。 死锁 死锁指的是两个或更多的线程被永久地阻塞,无法继续执行,因为每个线程都在等待其他线程释放资源。简单来说,就是线程之间互相占用对方需要的资源,并不释放,而导致程序无限等待下去。 活锁 活锁指的是线程虽然没有被阻塞,但是他们却无法继续前进,因为它们总是在响应其…

    C# 2023年6月7日
    00
  • 正则表达式用法详解

    正则表达式用法详解 什么是正则表达式 正则表达式是一种字符串的匹配和操作方式。在很多编程语言中,都内置了正则表达式的支持。正则表达式可以用来匹配符合一定规则的字符串,如邮箱地址、手机号码等,也可以用来对字符串进行操作,如去除空格、提取关键字等。 正则表达式规则 正则表达式规则由字符和元字符组成。 常用字符:- 字母:a、b、c、…、z、A、B、C、……

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