广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#读取word中表格数据的方法实现
  • 322
分享到

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

2024-04-02 19:04:59 322人浏览 泡泡鱼
摘要

前些日子有一个项目需要从Word文件中取表格数据并进行处理,网上大部分方案都是基于office的com组件实现,但是这样有一个缺点,如果电脑里没有安装office将无法使用,因为之前

前些日子有一个项目需要从Word文件中取表格数据并进行处理,网上大部分方案都是基于office的com组件实现,但是这样有一个缺点,如果电脑里没有安装office将无法使用,因为之前操作excel都是使用的NPOI,所以理所当然的想用NPOI解决此问题。

于是找到了如下代码

private List<string> GetDoc(string Path)
        {
            if (Path == "")
                return null;    //文件路径为空
            List<string> Result = new List<string>();    //结果容器
 
            FileStream stream = new FileStream(Path, FileMode.Open);    //打开流
            XWPFDocument docx = new XWPFDocument(stream);
            var list = new List<XWPFTableCell>();
 
            //循环遍历表格内容
            foreach (var row in docx.Tables[0].Rows)
            {
                foreach (var cell in row.GetTableCells())
                {
                    if (!list.Contains(cell))
                    {
                        list.Add(cell);
                        Result.Add(cell.GetText());
                    }
                }
            }
            stream.Close();
            return Result;    //关闭文件流(很关键,否则会导致下一个文件无法大开)
 
        }

但是这样做又有一个缺点 ,NPOI仅支持.docx格式的文件,如果读取.doc会直接报错!

于是后续又找到了另一开源组件freeSpire。有如下代码

        private List<string> GetDocX(string Path)
        {
            if (Path == "")
                return null;    //文件路径为空
            List<string> Result = new List<string>();
 
            Spire.Doc.Document doc = new Spire.Doc.Document();
            doc.LoadFromFile(Path);
 
            TextBox textbox = doc.TextBoxes[0];
            Spire.Doc.Table table = textbox.Body.Tables[0] as Spire.Doc.Table;
 
            foreach (TableRow row in table.Rows)
            {
                foreach (TableCell cell in row.Cells)
                {
                    foreach (Paragraph paragraph in cell.Paragraphs)
                    {
                        Result.Add(paragraph.Text);
                    }
                }
            }
            return Result;
        }

但是不知道什么原因,并不能抓取.doc文件中的表格。

随后尝试了其getText()函数确定可以直接抓取文字内容,初步判断可能是格式问题。

有考虑过自己写匹配函数对文本内容进行分析,但由于格式过于复杂,很多通用性问题无法解决后放弃。如果格式不复杂的话,也不失为一种解决方法。

最后采用的方法是先利用Spire组件将.doc转换为.docx后再利用NPOI进行内容处理,效果拔群!!!

        private string ChangeToDocx(string Path)
        {
            if (Path == "")
                return "";    //文件路径为空
            List<string> Result = new List<string>();
 
            Spire.Doc.Document doc = new Spire.Doc.Document();
            doc.LoadFromFile(Path);    //打开文件
            Path.Replace(".doc", "docx");    //替换后缀
            doc.SaveToFile(Path, FileFORMat.Docx);    //保存为.doc
            return Path;
        }

主函数中调用如下:(若不是.doc则无需转换以节约开销)

if (Path.Contains(".doc"))
{
    string newPath = ChangeToDocx(Path);
    result = GetDoc(newPath);
}
result = GetDoc(Path);

到此这篇关于C#读取word中表格数据的方法实现的文章就介绍到这了,更多相关C#读取word数据内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C#读取word中表格数据的方法实现

本文链接: https://www.lsjlt.com/news/151392.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#读取word中表格数据的方法实现
    前些日子有一个项目需要从word文件中取表格数据并进行处理,网上大部分方案都是基于office的com组件实现,但是这样有一个缺点,如果电脑里没有安装office将无法使用,因为之前...
    99+
    2022-11-13
  • python读取word文档表格里的数据
    首先需要安装相应的支持库: 直接在命令行执行pip install python-docx 示例代码如下: import docx from docx import Document #导入库 path = "E:\\pyt...
    99+
    2023-01-31
    表格 文档 数据
  • 利用Java读取Word表格中文本和图片的方法实例
    目录1. 程序环境准备Jar导入步骤及方法:方法1:手动导入。方法2:Maven仓库导入。2. Java代码3. 文本、图片读取效果总结本文通过Java程序来展示如何读取Word表格...
    99+
    2022-11-12
  • python实现读取excel表格详解方法
    目录一、python读取excel表格数据1、读取excel表格数据常用操作2、xlrd模块主要操作3、读取单元格内容为日期时间的方式4、读取合并单元格的数据二、python写入ex...
    99+
    2022-11-11
  • C#实现从PDF中提取表格的方法详解
    目录程序环境从PDF中提取表格具体步骤完整代码PDF是办公中比较常见的一种文件格式,在工作中应用也越来越普遍。由于PDF文件集成度和安全可靠性都较高,所以在PDF中编辑内容是一件比较...
    99+
    2022-11-13
    C# PDF提取表格 C# PDF 表格
  • C#实现拆分合并Word表格中的单元格
    目录程序环境在Word表格中合并单元格完整代码效果图在Word表格中拆分单元格完整代码效果图我们在使用Word制作表格时,由于表格较为复杂,只是简单的插入行、列并不能满足我们的需要。...
    99+
    2022-12-22
    C#拆分合并Word表格单元格 C#拆分单元格 C#合并单元格
  • C#读取txt文件数据的方法实例
    第一步新建txt文件,写入内容 我是放在D盘下的,数据以逗号隔开的,是英文逗号 第二步读取数据 在需要读取数据的页面,添加代码,就可以了 private void Phone...
    99+
    2022-11-12
  • Java读取PDF中的表格的方法示例
    目录一、概述​二、环境配置1. 手动导入2. Maven仓库下载导入三、读取PDF中的表格一、概述 本文以Java示例展示读取PDF中的表格的方法。这里导入Spire.P...
    99+
    2022-11-12
  • 小程序中读取腾讯文档的表格数据的实现
    目录1 创建连接器2 创建腾讯文档3 应用中访问腾讯文档3.1 获取sheet中的所有数据3.2 迭代行和列的数据4 总结日常生活中我们使用腾讯文档在线的收集各类数据,数据收集是比较...
    99+
    2022-11-13
  • Unity连接MySQL并读取表格数据的实现代码
    表格如下: 在Unity读取并调用时的代码: 而如果想要查看该数据库中的另一个表,不是直接使用Table[1],而是需要更改SELECT * from <?...
    99+
    2022-11-12
  • C++文件的数据写入和文件的数据读取的方法实现
    目录一:没有数据,准备数据,写入文件二:读文件操作一:没有数据,准备数据,写入文件 1.main.cpp #include<iostream> using namespa...
    99+
    2022-11-13
  • Python中怎么读取电子表格的数据
    今天就跟大家聊聊有关Python中怎么读取电子表格的数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。从电子表格读取 CSVPython 包含了一个 csv 模块,它可读取和写入 C...
    99+
    2023-06-16
  • Java实现将导出带格式的Excel数据到Word表格
    在Word中制作报表时,我们经常需要将Excel中的数据复制粘贴到Word中,这样则可以直接在Word文档中查看数据而无需打开另一个Excel文件。但是如果表格比较长,内容就会存在一...
    99+
    2022-11-16
    Java导出Excel数据到Word Java导出Excel数据 Java 导出数据
  • 利用Pandas读取表格行数据判断是否相同的方法
    描述: 下午快下班的时候公司供应链部门的同事跑过来问我能不能以程序的方法帮他解决一些excel表格每周都需要手工重复做的事情,Excel 是数据处理最常用的办公工具对于市场、运营都应...
    99+
    2022-11-11
  • pyqt5+opencv 实现读取视频数据的方法
    1、openCV读取视频数据 import cv2 if __name__ == '__main__': videoPath = "./dataSet/3700000000...
    99+
    2022-11-13
  • C#水晶报表数据获取的方法
    这篇文章主要讲解了“C#水晶报表数据获取的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#水晶报表数据获取的方法”吧!C#水晶报表数据获取方法有很多,那么这里主要向你介绍一个通过提取模...
    99+
    2023-06-17
  • Python中JSON数据的读取方法
    小编给大家分享一下Python中JSON数据的读取方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、...
    99+
    2023-06-14
  • Pytorch数据读取与预处理的实现方法
    这篇文章给大家分享的是有关Pytorch数据读取与预处理的实现方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  在炼丹时,数据的读取与预处理是关键一步。不同的模型所需要的数据以及预处理方式各不相同,如果每个轮...
    99+
    2023-06-14
  • c# Windows CE读取电池电量的实现方法
    本篇内容主要讲解“c# Windows CE读取电池电量的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c# Windows CE读取电池电量的实现方法”吧!c# Windows CE读...
    99+
    2023-06-17
  • 【经验分享】用Python读取电子表格中的数据
    Python 是最流行、功能最强大的编程语言之一。由于它是自由开源的,因此每个人都可以使用。大多数 Fedora 系统都已安装了该语言。Python 可用于多种任务,其中包括处理逗号分隔值(CSV)数据。CSV文件一开始往往是以表格或电子...
    99+
    2021-08-01
    【经验分享】用Python读取电子表格中的数据
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作