C# 将 Word 转文本存储到数据库并进行管理

简介: C# 将 Word 转文本存储到数据库并进行管理

前言


C# 是一种通用的编程语言,可以用于开发各种类型的应用程序,包括处理文本和数据库管理。在这篇文章中,我将向您介绍如何使用 C# 将 Word 文档转换为文本并将其存储到数据库中,并提供相应的代码示例。


1. 创建数据库表格


首先,我们需要创建一个数据库表格来存储转换后的文本。假设我们使用的是 Microsoft SQL Server 数据库,我们可以使用以下 SQL 语句创建一个包含两个列的表格:

CREATE TABLE Document
(
    ID INT PRIMARY KEY IDENTITY,
    Content NVARCHAR(MAX)
)

这个表格包含一个自增的 ID 列和一个 NVARCHAR(MAX) 类型的 Content 列,用于存储文本内容。


2. 安装必需的 NuGet 包


接下来,我们需要安装两个必需的 NuGet 包:`Microsoft.Office.Interop.Word` 和 `System.Data.SqlClient`。


在 Visual Studio 中,右键单击您的项目,然后选择 "管理 NuGet 程序包"。在 "浏览" 标签页中搜索并安装这两个包。


3. 转换 Word 文档为文本


使用 Microsoft Office Interop 库提供的功能,我们可以打开 Word 文档并将其转换为纯文本。以下是一个示例方法,可以完成这项任务:

using Microsoft.Office.Interop.Word;
 
public string ConvertWordToText(string filePath)
{
    Application wordApplication = new Application();
    Document wordDocument = wordApplication.Documents.Open(filePath);
    string text = wordDocument.Content.Text;
    wordDocument.Close();
    wordApplication.Quit();
    
    return text;
}

这个方法创建一个 Word 应用程序实例,并使用 `Documents.Open` 方法打开指定路径的 Word 文档。然后,我们可以使用 `Content.Text` 属性获取文档的纯文本内容。最后,我们记得关闭文档并退出应用程序。


4. 将文本存储到数据库


一旦我们获取到了转换后的文本,我们可以使用 ADO.NET 提供的功能将其存储到数据库中。以下是一个示例方法,可以完成这项任务:

using System.Data.SqlClient;
 
public void StoreTextToDatabase(string text)
{
    string connectionString = "Data Source=your_server;Initial Catalog=your_database;Integrated Security=True";
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        string query = "INSERT INTO Document (Content) VALUES (@Content)";
        SqlCommand command = new SqlCommand(query, connection);
        command.Parameters.AddWithValue("@Content", text);
        command.ExecuteNonQuery();
    }
}

这个方法创建一个 SqlConnection 对象,并使用提供的连接字符串连接到数据库。然后,我们可以使用 INSERT 语句将文本内容插入到 Document 表格中。


在这个示例中,我们使用了参数化查询,以避免 SQL 注入攻击。我们使用 `@Content` 占位符来代替文本内容,并在执行命令之前将实际文本值添加到参数集合中。


5. 完整示例


下面是将上述步骤整合在一起的完整示例:

using Microsoft.Office.Interop.Word;
using System.Data.SqlClient;
 
public class WordToTextConverter
{
    public void ConvertAndStore(string filePath)
    {
        string text = ConvertWordToText(filePath);
        StoreTextToDatabase(text);
    }
 
    private string ConvertWordToText(string filePath)
    {
        Application wordApplication = new Application();
        Document wordDocument = wordApplication.Documents.Open(filePath);
        string text = wordDocument.Content.Text;
        wordDocument.Close();
        wordApplication.Quit();
        
        return text;
    }
 
    private void StoreTextToDatabase(string text)
    {
        string connectionString = "Data Source=your_server;Initial Catalog=your_database;Integrated Security=True";
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            string query = "INSERT INTO Document (Content) VALUES (@Content)";
            SqlCommand command = new SqlCommand(query, connection);
            command.Parameters.AddWithValue("@Content", text);
            command.ExecuteNonQuery();
        }
    }
}

您可以将上述代码添加到您的 C# 项目中,并使用以下代码调用转换和存储方法:

WordToTextConverter converter = new WordToTextConverter();
converter.ConvertAndStore("path_to_word_document.docx");

请注意,您需要将 `your_server` 和 `your_database` 替换为实际的服务器和数据库名称,并确保 Word 文档的路径正确。


这就是将 Word 转换为文本并存储到数据库的基本过程。您可以根据您的实际需求进一步扩展和优化代码。希望对您有所帮助!

相关文章
|
3月前
|
自然语言处理 关系型数据库 MySQL
如何在mysql数据库里进行文本的相似度排序?
【8月更文挑战第28天】如何在mysql数据库里进行文本的相似度排序?
351 62
|
16天前
|
XML C# 开发工具
C# 删除Word文档中的段落
【11月更文挑战第3天】本文介绍了两种方法来操作 Word 文档:一是使用 `Microsoft.Office.Interop.Word` 库,适用于 Windows 环境下操作 Word 文档,需引用相应库并在代码中引入命名空间;二是使用 Open XML SDK,适用于处理 .docx 格式的文档,通过引用 `DocumentFormat.OpenXml` 库实现。文中提供了示例代码,展示了如何打开、删除段落并保存文档。
|
1月前
|
SQL 缓存 大数据
C#高效处理大数据的批次处理,以及最好的数据库设计
C#高效处理大数据的批次处理,以及最好的数据库设计
60 0
|
1月前
|
机器学习/深度学习 存储 自然语言处理
LangChain-22 Text Embedding 续接21节 文本切分后 对文本进行embedding向量化处理 后续可保存到向量数据库后进行检索 从而扩展大模型的能力
LangChain-22 Text Embedding 续接21节 文本切分后 对文本进行embedding向量化处理 后续可保存到向量数据库后进行检索 从而扩展大模型的能力
39 0
|
2月前
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
239 6
|
2月前
|
自然语言处理 关系型数据库 MySQL
match如何在mysql数据库里进行文本的相似度排序?
【9月更文挑战第1天】match如何在mysql数据库里进行文本的相似度排序?
110 1
|
3月前
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
188 3
C#winform中使用SQLite数据库
|
3月前
|
数据库
C#Winform使用NPOI获取word中的数据
C#Winform使用NPOI获取word中的数据
178 2
|
3月前
|
关系型数据库 MySQL 大数据
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
257 2
|
4月前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
190 1