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# 中的BinaryReader类。BinaryReader 类提供了许多读取不同数据类型的方法,并且可以对不同的编码方式进行解码。下面是读取文本文件的完整攻略: 步骤 1:创建BinaryReader对象 首先需要在代码中创建BinaryReader对象。可以使用FileStream类打开文本文件,并将其作为参…

    C# 2023年5月15日
    00
  • C#使用Task实现执行并行任务的原理的示例详解

    下面就来详细讲解如何使用C#的Task库实现并行执行任务的原理及示例。 什么是Task Task是.NET Framework 4.5及以上版本中新增的一个库,它的主要作用是提供一种方便、高效的方式来管理并发和异步编程相关的任务。相比较于自行利用Thread和ThreadPool管理线程,使用Task可以更方便地控制异步任务,并且能够支持更多种的异步模型。 …

    C# 2023年5月15日
    00
  • C#窗体传值实例汇总

    C#窗体传值实例汇总 简介 在C#窗体应用程序中,传递数据是非常常见的需求,本文将对C#窗体传值相关知识进行汇总与讲解,包括如何在不同窗体间传递数据、如何使用委托传递数据、如何使用事件传递数据等。 不同窗体间传递数据 方法一:通过构造函数传值 在窗体A中,对窗口B进行实例化时,通过构造函数传递参数即可。 // 窗体A private void button1…

    C# 2023年6月7日
    00
  • Java import static及import原理区别解析

    Java import static及import原理区别解析 在Java中,我们可以使用import语句来导入其他类或接口的定义,以便在当前类中使用它们。除了常规的import语句外,Java还提供了import static语句,用于导入静态成员。本文将详细讲解Java import static及import原理区别解析。 import语句 在Java…

    C# 2023年5月15日
    00
  • c# 数据标注与数据校验

    以下是“c# 数据标注与数据校验”的完整攻略: 什么是数据标注与数据校验 在C#中,数据标注和数据校验是用来确保输入数据的有效性的两个重要概念。数据标注可以将各种标记应用于数据,使得我们可以在数据类中定义该数据的元数据。而数据校验可以帮助保证数据符合特定的规则和限制条件,从而消除了由错误数据引起的问题。 数据标注详解 什么是数据标注 数据标注是一种将标记应用…

    C# 2023年5月31日
    00
  • C#之继承实现

    C#之继承实现 什么是继承 继承是一种面向对象编程的基本特征,是指在一个类的基础上创建新类,新类具有原来类的特征(属性和方法),同时还能增加自己的特性。 通过继承,可以使代码的复用性大大提高,同时使得代码的管理和维护更方便。 在C#语言中,继承是通过使用关键字“:`”来实现的,子类继承父类。 继承的基本语法 class 子类名 : 父类名 { // 子类特有…

    C# 2023年6月6日
    00
  • C#遍历文件夹及其子目录的完整实现方法

    下面是详细讲解“C#遍历文件夹及其子目录的完整实现方法”的攻略: 方案概述 在C#中遍历文件夹及其子目录可以使用递归方式或者非递归方式实现。本文主要介绍递归方式实现的方法,并提供两个示例说明。 递归遍历文件夹 递归遍历文件夹的基本思路是采用递归调用方式,先获取当前目录下的所有文件和子目录,然后对每一个子目录再进行递归操作。具体实现可以使用Directory类…

    C# 2023年6月1日
    00
  • 深入谈谈C#9新特性的实际运用

    下面我将为您详细讲解“深入谈谈C#9新特性的实际运用”的完整攻略。 深入谈谈C#9新特性的实际运用 C#9新特性简介 C# 9 最终版于2020年11月发布,是C#编程语言的最新版本,增加了一系列新特性,方便开发者更加便捷地编写高质量的代码。下面我们来一一了解一下C#9的新特性: 类型模式匹配(Type Pattern Matching) 全局使用命名空间(…

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