为.NET安装一个开源fileformat.words,以编程方式学习如何在C#中读取DOCX文件。此API提供了构建Word文件查看器的方法。
概述
建立涉及文件创建和操纵的业务软件并不容易。时间和人小时是关键因素,但是选择相关的第三方图书馆在发展阶段起着至关重要的作用。因此,让我们浏览一个开源.NET库,该库提供了多种方法来操纵Word文件。此API不仅可以创建/编辑Word文件,还可以读取业务文档/DOCX文件。我们正在谈论fileformat.words是通过编程处理Word文档所需的完整功能包。但是,这篇博客文章将回答您的问题(即 如何在C#? 中打开DOCX文件)。此外,您将能够在本文末尾构建Word文件读取器。 我们将在本指南中介绍以下几点:
Word文件查看器 - API安装
请访问此链接,以详细介绍安装过程。否则,无论您可以使用其Nuget package还是通过在Nuget Package Manager中运行以下命令来安装它。
Install-Package FileFormat.Words
如何在C#中打开DOCX文件
安装了此开源.NET API后,您可以立即开始编写代码。让我们为您的业务软件构建Word文件读取器组件。有多种方法和属性可以读取DOCX/DOCS文件,但我们将使用一些突出的方法/属性。 您可以按照以下步骤和代码段:
- 初始化文档类的实例,然后加载DOCX/DOCS文件。
- 实例化身体类的对象。
- 调用getDocumentTables.count()方法,该方法返回文档中表的总数。
- getDocumentTables属性返回表属性。
- 现有台面属性返回表标头。
- 调用NumberOfrows属性访问表行。
- 使用NumberColumns属性获取列数。
- 使用NumberOfcells属性访问单元格数。
- tableborder属性用于读取边框样式。
- 使用TablePosition属性获取表的位置。
- 调用17从Word文档中获取所有图像的方法。
- 调用GetParagraphs检索所有文档段落的方法。
- Linspacing属性用于了解两条线之间的间距。
- 缩进属性用于了解凹痕的值。
- 通过调用text属性来获取段落的文本。
using FileFormat.Words;
using FileFormat.Words.Table;
namespace Example
{
class Program
{
static void Main(string[] args)
{
// Initialize an instance of the Document class and load the Docx/Docs file.
using (Document doc1 = new Document("/Docs.docx"))
{
// Instantiate an object of the Body class.
Body body1 = new Body(doc1);
// Invoke the getDocumentTables method that returns the total number of tables in a document.
Console.WriteLine("Total Number of Tables " + body1.getDocumentTables.Count());
int i = 0;
// The getDocumentTables property returns the table properties.
foreach (Table props in body1.getDocumentTables)
{
// The ExistingTableHeaders property returns the table headers.
foreach (string tableHeader in props.ExistingTableHeaders)
{
i++;
Console.WriteLine("Header"+i+": "+tableHeader);
}
// Call NumberOfRows property to access the table rows.
Console.WriteLine("Number of rows "+props.NumberOfRows);
// Use NumberOfColumns property to fetch number of columns.
Console.WriteLine("Number of columns " + props.NumberOfColumns);
// Access the number of cells using NumberOfCells property.
Console.WriteLine("Number of cells " + props.NumberOfCells);
Console.WriteLine("Cell width " + props.CellWidth);
// The TableBorder property is used to read the border style.
Console.WriteLine("Border style " + props.TableBorder);
// Use the TablePosition property to get the position of the table.
Console.WriteLine("Table position " + props.TablePosition);
Console.WriteLine(" ");
}
// Invoke the ExtractImagesFromDocument method to get all the images from a Word document.
List<Stream> imageParts = Image.ExtractImagesFromDocument(doc1);
int imageCount = imageParts.Count;
Console.WriteLine($"Total number of images: {imageCount}");
// Call the GetParagraphs method to retrieve all the document paragraphs.
List<Paragraph> paras = body1.GetParagraphs();
Console.WriteLine("The number of Paragraphs " + paras.Count());
foreach (Paragraph p in paras)
{
// The LinesSpacing property is used to know the spacing between the lines.
Console.WriteLine("Line spacing "+p.LinesSpacing);
// The Indent property is used to know the value of indentation.
Console.WriteLine("Indent value "+p.Indent);
// Get the text of the paragraph by calling the Text property.
Console.WriteLine(p.Text);
}
}
}
}
}
上面的代码段读取一个文字文件,其中包含一个段落,一个表和一个图像。但是,您可以在下图中看到输出:
结论
我们在这里结束这篇博客文章。我们希望您对您的问题有答案(即 如何在C#? 中打开DOCX文件)。此外,我们已经完成了代码段,该代码段是通过编程方式读取现有Word文档的。现在,您可以轻松地构建一个像 Word File Viewer 一样工作的模块。此外,不要忘记访问.NET的FileFormat.Words的Documentation。 最后,fileformat.com继续写有关其他主题的博客文章。此外,您可以在我们的社交媒体平台上关注我们,包括Facebook,LinkedIn和Twitter。
贡献
由于.NET的FileFormat.Words是一个开源项目,可在GitHub上找到。因此,社区的贡献非常感谢。
问一个问题
您可以在我们的论坛上让我们知道您的问题或查询。
常见问题 - 常见问题
如何打开一个没有单词的DOCX文件? 您可以使用此开源.NET库FileFormat.Words打开DOCX/DOCS文件。此外,您可以使用此Library为您的业务应用程序构建Word文件读取器模块。