统计 Word 文档中的字数、字符数、段落数、行数和页数是分析文本内容的重要指标。字数指单词总量;字符数包括字母、数字及标点;段落数反映文本结构;行数显示文本密度;页数则关联打印布局。在本文中,我们将演示如何使用 Spire. Doc for .NET 在 C# 中统计 Word 文档中的字数、字符数、段落数、行数和页数。
首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.Doc
Spire.Doc for .NET 提供了 BuiltinDocumentProperties 类,使您能够从 Word 文档中检索重要信息。通过使用此类,您可以获取文档的内置和自定义属性,包括文档的字数、字符数、段落数、行数和页数的精确计数。具体步骤如下。
using Spire.Doc;
using System.IO;
using System.Text;
namespace CountWordsCharactersEtcInWord
{
internal class Program
{
static void Main(string[] args)
{
// 创建一个Document对象,用于操作Word文档
Document document = new Document();
// 从指定路径加载一个Word文档
document.LoadFromFile(@"Input.docx");
// 获取BuiltinDocumentProperties对象
BuiltinDocumentProperties properties = document.BuiltinDocumentProperties;
// 获取文档中的字数
int wordCount = properties.WordCount;
// 获取文档中的字符数(不包括空格)
int charCount = properties.CharCount;
// 获取文档中的字符数(包括空格)
int charCountWithSpace = properties.CharCountWithSpace;
// 获取文档中的段落数
int paraCount = properties.ParagraphCount;
// 获取文档中的行数
int lineCount = properties.LinesCount;
// 获取文档中的页数
int pageCount = properties.PageCount;
// 创建一个StringBuilder对象
StringBuilder sb = new StringBuilder();
// 将各个统计信息添加到StringBuilder中
sb.AppendLine("字数: " + wordCount);
sb.AppendLine("字符数(不计空格): " + charCount);
sb.AppendLine("字符数(计空格): " + charCountWithSpace);
sb.AppendLine("段落数: " + paraCount);
sb.AppendLine("行数: " + lineCount);
sb.AppendLine("页数: " + pageCount);
// 将统计结果写入到指定的文本文件中
File.WriteAllText(@"result.txt", sb.ToString());
// 关闭文档对象,释放资源
document.Close();
}
}
}

除了统计整个 Word 文档中的字数和字符数外,Spire.Doc for .NET 还允许您使用 Paragraph.WordCount 和 Paragraph.CharCount 属性来统计特定段落的字数和字符数。具体步骤如下:
using Spire.Doc.Documents;
using Spire.Doc;
using System.Text;
using System.IO;
namespace CountWordsAndCharactersForParagraph
{
internal class Program
{
static void Main(string[] args)
{
// 创建一个Document对象
Document document = new Document();
// 从指定路径加载Word文档
document.LoadFromFile(@"Input.docx");
// 获取文档的第一个节的第二个段落
Paragraph paragraph = document.Sections[0].Paragraphs[1];
// 计算段落中的单词数量
int wordCount = paragraph.WordCount;
// 计算段落中的字符数量(不包括空格)
int charCount = paragraph.CharCount;
// 计算段落中的字符数量(包括空格)
int chartIncludeSpace = paragraph.CharCountIncludeSpace;
// 创建一个StringBuilder对象
StringBuilder sb = new StringBuilder();
// 将单词数量添加到StringBuilder中
sb.AppendLine("字数: " + wordCount);
// 将字符数量(不计空格)添加到StringBuilder中
sb.AppendLine("字符数(不计空格): " + charCount);
// 将字符数量(计空格)添加到StringBuilder中
sb.AppendLine("字符数(计空格): " + chartIncludeSpace);
// 将StringBuilder写入到指定的文件中
File.WriteAllText(@"Pararesult.txt", sb.ToString());
// 关闭文档对象
document.Close();
}
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Presentation for Java 9.7.4 已发布。该版本主要修复了一些在转换 PPT 到图片,以及加载、保存PPT文档时遇到的问题。详情请查看以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html
Spire.PDF 10.7.12 已发布。本次更新新增支持转换到 PDFA 格式文档时允许保留 XMP 数据。此外,一些已知问题也在该版本中成功修复,如验证签名有效性不准确的问题。详情请阅读以下内容。
新功能:
PdfStandardsConverter converter = new PdfStandardsConverter(stream);
converter.Options.PreserveAllowedMetadata = true;问题修复:

Word 和 Excel 分别适用于不同类型的内容——Word 侧重文档编辑,而 Excel 更擅长处理结构化数据和分析。正因如此,在两种格式之间转换内容并不总是那么直观。若 Word 文档中包含希望在 Excel 中查看或处理的数据,手动转换可能相当繁琐。借助 Spire.Doc for .NET,您可以直接将 Word 转换为 Excel,从而更高效地复用文档中的数据。
在本教程中,您将学习如何使用 C# 实现 Word 到 Excel 的转换。
首先,您需要将 Spire.Doc for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。
这些 DLL 文件可从此链接下载,或通过 NuGet 安装。
PM> Install-Package Spire.Doc
使用 Spire.Doc 将 Word 文档转换为 Excel 十分简便:
当 Word 文档中包含结构化内容(尤其是表格)时,此方法效果最佳,因为表格可自然地映射至 Excel 单元格。
using Spire.Doc;
namespace WordToExcel
{
class Program
{
static void Main(string[] args)
{
// 加载 Word 文档
Document document = new Document();
document.LoadFromFile("G:/Documents/Sample.docx");
// 另存为 Excel
document.SaveToFile("G:/Documents/Sample84.xlsx", FileFormat.XLSX);
// 释放资源
document.Dispose();
}
}
}
输出效果:

在将 Word 转换为 Excel 时,了解内容的解析方式至关重要:
建议:为获得最佳转换效果,请确保 Word 文档在转换前使用清晰的表格结构。
掌握基础转换后,您可以根据实际需求处理更复杂的场景。
若仅需要结构化数据,从 Word 文档中提取表格往往比转换整个文件更有用。默认情况下,同一节内的所有表格都会放在同一个工作表中。若要将每个表格输出至独立的工作表,可在转换前将每个表格放入单独的“节”中。
为此,您可以操作文档结构与表格对象:
using Spire.Doc;
class Program
{
static void Main()
{
// 加载源 Word 文档
Document doc = new Document();
doc.LoadFromFile("G:/Documents/Sample84.docx");
// 创建一个临时文档用于存储提取的表格
Document tempDoc = new Document();
// 遍历源文档的所有节
foreach (Section section in doc.Sections)
{
// 遍历当前节中的所有表格
foreach (Table table in section.Tables)
{
// 为每个表格创建新节(每个节将成为 Excel 中的独立工作表)
Section tempSec = tempDoc.AddSection();
// 克隆表格并添加到新节中
tempSec.Tables.Add(table.Clone());
}
}
// 保存为 Excel 文件
tempDoc.SaveToFile("Tables.xlsx", FileFormat.XLSX);
doc.Dispose();
tempDoc.Dispose();
}
}

说明:由于每个表格在转换前都被置于独立的节中,输出的 Excel 文件里每个表格会显示在独立的工作表中。
某些情况下,仅特定页面包含所需数据(例如第 2 页的汇总表)。此时,您可在转换前使用 Document.ExtractPages() 将该页面内容隔离至新的 Document 对象中。这避免了处理整个文件,并生成更清晰、聚焦的输出。
using Spire.Doc;
namespace WordPageToExcel
{
class Program
{
static void Main(string[] args)
{
Document document = new Document();
document.LoadFromFile("input.docx");
// 提取指定页面的内容(例如第 2 页,对应索引为 1,索引从 0 开始)
Document pageDoc = document.ExtractPages(1, 1);
// 将提取的页面保存为 Excel
pageDoc.SaveToFile("output.xlsx", FileFormat.XLSX);
document.Dispose();
pageDoc.Dispose();
}
}
}

提示:Word 中的页面边界是基于流式布局的,可能会因字体渲染差异而发生变化。若提取结果与 Word 中显示的页面不完全一致,可以在目标页码附近尝试不同索引值进行微调。
要转换整个文件夹中的 Word 文件,可以遍历所有 .docx 文件并应用相同的转换逻辑。这适用于批量迁移或定时任务处理场景,也可以很方便地集成到后台任务或自动化流程中。。
using Spire.Doc;
using System.IO;
namespace BatchWordToExcel
{
class Program
{
static void Main(string[] args)
{
string inputFolder = "inputDocs";
string outputFolder = "outputExcels";
Directory.CreateDirectory(outputFolder);
string[] wordFiles = Directory.GetFiles(inputFolder, "*.docx");
// 遍历每个 Word 文件并转换为 Excel
foreach (string filePath in wordFiles)
{
Document document = new Document();
document.LoadFromFile(filePath);
string fileName = Path.GetFileNameWithoutExtension(filePath);
string outputPath = Path.Combine(outputFolder, fileName + ".xlsx");
document.SaveToFile(outputPath, FileFormat.XLSX);
document.Dispose();
}
}
}
}
提示:对于大批量处理,建议将内部代码块包裹在 try/catch 语句中,以防止单个格式错误的文件导致整个流程中止。如果您的转换工作流需要在转换前先合并文档,可了解如何在 C# 中合并 Word 文档。
答:Spire.Doc for .NET 支持 .doc 和 .docx 格式作为输入。您可使用 Document.LoadFromFile() 加载任一格式,库将自动处理其余部分。
答:转换的主要目标是将内容导出为电子表格格式。表格等结构化内容通常可保留较好的可读性,而复杂布局可能无法完全按 Word 原样保留。
答:适合,但性能可能因文档大小与复杂程度而异。对于大型文件,建议在代码中优化内存使用并高效处理文档。
答:可以。保存为 .xlsx 后,您可以结合使用 Spire.XLS for .NET 打开该文件以进一步自定义输出,例如调整单元格样式、字体、颜色、列宽或添加公式。这两个库设计可无缝协同工作。
本文介绍了如何使用 Spire.Doc for .NET 在 C# 中将 Word 转换为 Excel,涵盖从基础转换到页面提取与表格定向处理等进阶场景。若需要更精细地控制输出结果(如调整字体、颜色或单元格格式),可将其与 Spire.XLS for .NET 结合使用。
您也可探索其他转换功能,例如将 Word 文档导出为 PDF、HTML 或图片等。
如需移除生成文档中的评估水印或解除功能限制,请申请 30 天免费临时授权。
Spire.Doc for Python 12.7.1 已发布,本次更新修复了在 Ubuntu 22 系统上使用 Spire.Doc 的一些功能抛异常 "ffi_prep_cif_var failed" 的问题。详情请阅读以下内容。
问题修复:
与 Excel 文件相比,TXT 文本文件更容易阅读,且占用内存也更少,因为它们只包含纯文本数据,没有任何复杂的格式或结构。因此,在某些要求简单和高效的场景下,会需要将 Excel 文件转换为 TXT 文本文件。本文将演示如何使用 Spire.XLS for .NET 通过 C# 代码将 Excel 转换为 TXT 格式。
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
Spire.XLS for .NET 提供了 Worksheet.SaveToFile(string fileName, string separator, Encoding encoding) 方法,用于将指定的工作表转换为 TXT 文本文件。具体步骤如下:
using Spire.Xls;
using System.Text;
namespace ExcelToTXT
{
class Program
{
static void Main(string[] args)
{
//创建Workbook对象
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\测试.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//将工作表另存为txt文件
sheet.SaveToFile("Excel转Txt.txt", " ", Encoding.UTF8);
}
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.XLS 14.7.2 现已发布。该版本支持获取工作表的自定义属性以及嵌入 OLE 对象的原文档名称。此外,一些在转换 Excel 到图片和 PDF 时出现的问题也已成功被修复。新功能及问题修复详情如下。
新功能:
Workbook workbook = new Workbook ();
workbook.LoadFromFile("funds-test.xlsx");
ICustomPropertiesCollection customProperties = workbook.Worksheets[0].CustomProperties;
for (int i = 0; i < customProperties.Count; i++)
{
XlsCustomProperty xcp = customProperties[i];
string name = xcp.Name;
string value = xcp.Value;
}ole.OleOriginName问题修复:
当一个 PowerPoint 演示文稿被转换为 PDF 时,它的文档布局和格式是固定的。接收者可以在没有安装微软 PowerPoint 的情况下查看转换后的文档,但他们不能轻易地修改它。在本文中,我们将演示如何使用 Spire.Presentation for Java 库将 PowerPoint 演示文稿转换为 PDF 以及实现各种转换效果。
首先,您需要在 Java 程序中添加 Spire.Presentation.jar 文件作为依赖项。JAR 文件可以从此链接下载。如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而轻松地在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.presentation</artifactId>
<version>11.9.10</version>
</dependency>
</dependencies>
直接将 PowerPoint 文档转换为 PDF 时,可以先使用 Presentation.loadFromFile() 方法加载文档,然后使用 Presentation.saveToFile() 方法将其保存为 PDF 文件。详细步骤如下:
import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
public class ConvertPowerPointToPDF {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于操作PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件到Presentation对象中
ppt.loadFromFile("Sample.pptx");
// 将加载后的PowerPoint演示文稿保存为PDF格式的文件,文件名为"ToPdf1.pdf"
ppt.saveToFile("ToPdf1.pdf", FileFormat.PDF);
}
}

首先,使用 Presentation.getSlides().get() 方法获取到特定的幻灯片,然后使用 ISlide.saveToFile() 方法将该幻灯片保存为 PDF,详细步骤如下:
import com.spire.presentation.FileFormat;
import com.spire.presentation.ISlide;
import com.spire.presentation.Presentation;
public class toPdfSpecifySlide {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于操作PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件到Presentation对象中
ppt.loadFromFile("Sample.pptx");
// 获取演示文稿中的第二个幻灯片(索引为1)
ISlide slide= ppt.getSlides().get(1);
// 将选定的幻灯片保存为PDF格式的文件,文件名为"ToPdf2.pdf"
slide.saveToFile("ToPdf2.pdf", FileFormat.PDF);
}
}

Spire.Presenation for Java 提供了 SaveToPdfOption 类来设置一些 PowerPoint 转 PDF 过程中的一些选项。比如你可以使用 SaveToPdfOption.setPdfConformanceLevel() 方法来使生成的 PDF 文档满足 PDF/A 规范,详细步骤如下:
import com.spire.presentation.*;
import com.spire.presentation.pdf.PdfConformanceLevel;
public class newToPdfA {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于处理PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件
ppt.loadFromFile("Sample.pptx");
// 获取SaveToPdfOption对象
SaveToPdfOption saveToPdfOption = ppt.getSaveToPdfOption();
// 设置结果PDF的格式为PDF/A-1a
saveToPdfOption.setPdfConformanceLevel(PdfConformanceLevel.Pdf_A_1_A);
// 将PowerPoint演示文稿保存为名为"outputPDFA.pdf"的PDF文件
ppt.saveToFile("outputPDFA.pdf", FileFormat.PDF);
// 释放资源
ppt.dispose();
}
}

Spire.Presenation for Java 提供的 SaveToPdfOption 类还可以通过 SaveToPdfOption. getPdfSecurity().encrypt() 方法实现给转换后的 PDF 文档设置打开密码,详细步骤如下:
import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
import com.spire.presentation.SaveToPdfOption;
public class toPassWordPdf {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于处理PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件
ppt.loadFromFile("Sample.pptx");
// 获取SaveToPdfOption对象
SaveToPdfOption saveToPdfOption = ppt.getSaveToPdfOption();
// 给结果PDF设置打开密码
saveToPdfOption.getPdfSecurity().encrypt("e-iceblue");
// 将PowerPoint演示文稿保存为名为"outputPass.pdf"的PDF文件
ppt.saveToFile("outputPass.pdf", FileFormat.PDF);
// 释放资源
ppt.dispose();
}
}

下面来看如何通过 Spire.Presenation for Java 提供的 SaveToPdfOption 类来实现给 PDF 设置权限和权限密码,主要会使用到 SaveToPdfOption. getPdfSecurity().encrypt() 方法,详细步骤如下:
import com.spire.presentation.*;
import com.spire.presentation.pdf.security.PdfPermissionsFlags;
public class toPermissionedPdf {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于处理PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件
ppt.loadFromFile("Sample.pptx");
// 获取SaveToPdfOption对象
SaveToPdfOption saveToPdfOption = ppt.getSaveToPdfOption();
// 对生成的PDF设置权限密码、以及只允许文档有打印权限
saveToPdfOption.getPdfSecurity().encrypt("e-iceblue", PdfPermissionsFlags.Print);
// 将PowerPoint演示文稿保存为名为"outputPermission.pdf"的PDF文件
ppt.saveToFile("outputPermission.pdf", FileFormat.PDF);
// 释放资源
ppt.dispose();
}
}

Spire.Presentation for Java 提供了 SaveToPdfOption.setPageSlideCount() 方法来设置生成的 PDF 文档设置一个页面包含幻灯片的数量,详细步骤如下:
import com.spire.presentation.*;
public class toPDFNumber {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于处理PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件
ppt.loadFromFile("input.pptx");
// 获取SaveToPdfOption对象
SaveToPdfOption saveToPdfOption = ppt.getSaveToPdfOption();
// 设置生成的PDF文档中一个页面包含4页幻灯片
saveToPdfOption.setPageSlideCount(PageSlideCount.Four);
// 将PowerPoint演示文稿保存为名为"outputNumber.pdf"的PDF文件
ppt.saveToFile("outputNumber.pdf", FileFormat.PDF);
// 释放资源
ppt.dispose();
}
}

将 PowerPoint 文档转为 PDF,有时为了适合打印,需要重新设置页面大小,通过 Presentation.getSlideSize().setType() 方法来设置当前 PowerPoint 文档的页面尺寸,转为 PDF 时也会是这个设置好的尺寸,详细步骤如下:
import com.spire.presentation.*;
public class toPdfWithSpecificPageSize {
public static void main(String[] args) throws Exception {
// 定义输入文件名,这里是一个PowerPoint演示文稿文件
String inputFile = "Sample.pptx";
// 定义输出文件名,这里是一个PDF文件
String outputFile = "result.pdf";
// 创建一个Presentation对象,用于处理PowerPoint文件
Presentation ppt = new Presentation();
// 从指定的文件中加载PowerPoint演示文稿
ppt.loadFromFile(inputFile);
// 设置幻灯片的大小类型为A4纸张大小
ppt.getSlideSize().setType(SlideSizeType.A4);
// 将PowerPoint演示文稿保存为PDF格式的文件
ppt.saveToFile(outputFile, FileFormat.PDF);
// 释放与Presentation对象关联的资源
ppt.dispose();
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在日常工作和学习中,我们经常需要处理包含各种表格数据的 Word 文档。这些表格可能包含重要的统计数据、财务信息或其他关键内容。有时我们需要从 Word 文档中提取这些表格,以便进行进一步的数据分析、整理或与他人共享。在这篇文章中,我们将介绍如何使用 Spire.Doc for .NET 和 C# 从 Word 文档中提取表格。
首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.Doc
在 Spire.Doc for .NET 中,Section.Tables 属性用于访问 Word 文档特定节中包含的表格。该属性返回一个 ITable 对象的集合,每个对象代表该节中的一个独立表格。获取 ITable 对象后,就可以遍历它们的行和单元格,并使用 cell.Paragraphs[index].Text 属性来提取每个单元格的文本内容。
从 Word 文档中提取表格的详细步骤如下:
using Spire.Doc;
using Spire.Doc.Collections;
using Spire.Doc.Interface;
using System.IO;
using System.Text;
namespace ExtractWordTable
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Document 类的对象
Document doc = new Document();
// 加载 Word 文档
doc.LoadFromFile("表格.docx");
// 遍历文档中的各个节
for (int sectionIndex = 0; sectionIndex < doc.Sections.Count; sectionIndex++)
{
// 获取当前节
Section section = doc.Sections[sectionIndex];
// 获取当前节中的表格集合
TableCollection tables = section.Tables;
// 遍历节中的各个表格
for (int tableIndex = 0; tableIndex < tables.Count; tableIndex++)
{
// 获取当前表格
ITable table = tables[tableIndex];
// 初始化一个string对象来存储表格数据
string tableData = "";
// 遍历表格中的行
for (int rowIndex = 0; rowIndex < table.Rows.Count; rowIndex++)
{
// 获取当前行
TableRow row = table.Rows[rowIndex];
// 遍历行中的单元格
for (int cellIndex = 0; cellIndex < row.Cells.Count; cellIndex++)
{
// 获取当前单元格
TableCell cell = table.Rows[rowIndex].Cells[cellIndex];
// 获取单元格中的文本
string cellText = "";
for (int paraIndex = 0; paraIndex < cell.Paragraphs.Count; paraIndex++)
{
cellText += (cell.Paragraphs[paraIndex].Text.Trim() + " ");
}
// 将文本添加到string对象中
tableData += cellText.Trim();
if (cellIndex < table.Rows[rowIndex].Cells.Count - 1)
{
tableData += "\t";
}
}
// 添加一个新行
tableData += "\n";
}
// 将表格数据保存到文本文件中
string filePath = Path.Combine("表格", $"Section{sectionIndex + 1}_Table{tableIndex + 1}.txt");
File.WriteAllText(filePath, tableData, Encoding.UTF8);
}
}
doc.Close();
}
}
}

除了将提取的表格数据保存到文本文件之外,你还可以使用 Spire.XLS for .NET 库直接将数据写入 Excel 工作表。但在使用 Spire.XLS 之前,你需要通过 NuGet 安装它:
Install-Package Spire.XLS
从 Word 文档提取表格数据并保存到 Excel 工作表的详细步骤如下:
using Spire.Doc;
using Spire.Doc.Interface;
using Spire.Xls;
namespace ExtractWordTableToExcel
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Document 类的对象
Document doc = new Document();
// 加载 Word 文档
doc.LoadFromFile("表格.docx");
// 创建 Workbook 类的对象
Workbook wb = new Workbook();
// 删除默认工作表
wb.Worksheets.Clear();
// 遍历文档中的各个节
for (int sectionIndex = 0; sectionIndex < doc.Sections.Count; sectionIndex++)
{
// 获取当前节
Section section = doc.Sections[sectionIndex];
// 遍历节中的各个表格
for (int tableIndex = 0; tableIndex < section.Tables.Count; tableIndex++)
{
// 获取当前表格
ITable table = section.Tables[tableIndex];
// 添加一个工作表到工作簿中
Worksheet ws = wb.Worksheets.Add($"Section{sectionIndex + 1}_Table{tableIndex + 1}");
// 遍历表格中的行
for (int rowIndex = 0; rowIndex < table.Rows.Count; rowIndex++)
{
// 获取当前行
TableRow row = table.Rows[rowIndex];
// 遍历行中的单元格
for (int cellIndex = 0; cellIndex < row.Cells.Count; cellIndex++)
{
// 获取当前单元格
TableCell cell = row.Cells[cellIndex];
// 获取单元格中的文本
string cellText = "";
for (int paraIndex = 0; paraIndex < cell.Paragraphs.Count; paraIndex++)
{
cellText += (cell.Paragraphs[paraIndex].Text.Trim() + " ");
}
// 将单元格文本写入工作表
ws.SetCellValue(rowIndex + 1, cellIndex + 1, cellText);
}
// 自动调整工作表中列的宽度
ws.Range.AutoFitColumns();
}
}
}
// 将工作簿保存为 Excel 文件
wb.SaveToFile("表格/Word表格转Excel.xlsx", ExcelVersion.Version2016);
doc.Close();
wb.Dispose();
}
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.OCR 1.9.8 现已发布。该版本新增 ConfigureOptions 类以及 ConfigureDependencies(ConfigureOptions configureOptions) 方法,支持配置 OCR 使用的模型、识别语言以及依赖库。详情请查看以下内容。
新功能:
OcrScanner scanner = new OcrScanner();
// 创建 ConfigureOptions 类的新实例
ConfigureOptions configureOptions = new ConfigureOptions();
// 配置模型文件的路径
configureOptions.ModelPath = @"D:\Model&Lib\Model\V4.Server";
// 配置依赖库的路径
configureOptions.LibPath = @"D:\Model&Lib\Lib\V2.7\Net\X64";
// 指定语言
configureOptions.Language = "Chinese";
// 使用 ConfigureDependencies 应用配置到扫描器
scanner.ConfigureDependencies(configureOptions);
scanner.Scan("test.tif");