在 OneNote 中,表格有助於保持信息的組織,從會議記錄和數據日志到快速比較表。 在某些情況下,您可能需要以編程方式從 OneNote 的表格中提取文本。也許您想要分析表格內容,將其移入數據庫,或將其轉換為其他格式。
在本指南中,我們將向您展示如何使用 C# 從 OneNote 中提取表格文字。您將學會如何從整個表格、單行或甚至單個單元格中獲取文字,並通過簡單易懂的範例進行學習。
讓我們開始吧。
為什麼要從 OneNote 中的表格提取文字?
開發者經常需要從 OneNote 表格中提取數據,以進行自動化、報告或與其他系統的整合。以下是幾個真實的例子:
- 將會議摘要導出為結構化報告。
- 從共享筆記中讀取表格數據進行分析。
- 同步 OneNote 表格與外部系統或儀表板。
而不是手動複製數據,Aspose.Note for .NET 允許您通過代碼以快速、一致和完全自動化的方式處理所有這些。
C# 函式庫用於從 OneNote 表格中提取文本
Aspose.Note for .NET 是一個強大的 API,讓開發人員能夠在 .NET 應用程序中創建、讀取、編輯和轉換 OneNote 文件。它支持豐富的對象模型,可訪問頁面、文本、圖像、大綱和表格等元素。對於表格文本提取,它提供了 Document 類,該類表示一個 OneNote 文件,並提供了像 GetChildNodes() 這樣的方法,使開發人員能夠輕鬆定位和提取表格元素。
您可以從 Aspose.Note for .NET releases page 下載,或使用 NuGet 安裝:
PM> Install-Package Aspose.Note
如何從 OneNote 的表格中提取文本
Aspose.Note 使得可以從 OneNote 文件中提取不同層級的文本:
- 整個表格
- 一特定行
- 單一細胞
讓我們一步一步地看這些。

範例表格
要了解如何使用 C# 從 OneNote 文檔中提取文本和圖像,請查看我們的詳細 guide on extracting content from OneNote files。
1. 使用 C# 從 OneNote 中提取表格文本
我們可以輕鬆地使用 Aspose.Note for .NET 從 OneNote 文件中的所有可用表格中提取文本。我們將介紹訪問表格節點、閱讀其內容以及以可讀格式顯示提取文本的過程。
按照以下步驟從 OneNote 文件中的表格中提取文本:
- 使用
Document類別加載.one文件。 - 使用
GetChildNodes<Table>()方法來檢索所有的表格節點。 - 遍歷每個表格並提取其文本內容。
- 在控制台上打印結果。
以下代碼示例顯示如何從 OneNote 文檔中的所有表格中提取文本。
using Aspose.Note;
// 將文檔加載到 Aspose.Note 中。
Document document = new Document("SampleTable.one");
// 獲取表格節點列表
IList<Table> nodes = document.GetChildNodes<Table>();
// 設定桌子數量
int tblCount = 0;
foreach (Table table in nodes)
{
tblCount++;
Console.WriteLine("Table # " + tblCount);
// Retrieve text
string text = string.Join(Environment.NewLine,
table.GetChildNodes<RichText>().Select(e => e.Text)) + Environment.NewLine;
// Print text on the output screen
Console.WriteLine(text);
}
Output
Table # 1
cell_1.1
cell_1.2
cell_1.3
cell_2.1
cell_2.2
cell_2.3
2. 從 OneNote 表格中的特定行提取文本
有時候,你只需要從特定的行中提取文本,而不是整個表格。我們將循環遍歷所有表格,然後遍歷每一行,獨立提取文本。這在你需要按行分析或處理表格數據時非常有用。
您可以按照以下步驟逐行提取文本:
- 使用
Document類別加載 OneNote 文件。 - 獲取表節點列表。
- 逐個遍歷每個表格,再逐個遍歷每一行。
- 提取並顯示每一行的文字。
以下的程式碼範例顯示如何使用 C# 從表格中提取一行文字:
using Aspose.Note;
// 將文件加載到 Aspose.Note 中。
Document document = new Document("SampleTable.one");
// 獲取表節點的列表
IList<Table> nodes = document.GetChildNodes<Table>();
// 設定行數
int rowCount = 0;
foreach (Table table in nodes)
{
// 遍歷表格行
foreach (TableRow row in table)
{
rowCount++;
// Retrieve text
string text = string.Join(Environment.NewLine,
row.GetChildNodes<RichText>().Select(e => e.Text)) + Environment.NewLine;
// Print text on the output screen
Console.WriteLine($"Row #{rowCount}:");
Console.WriteLine(text);
}
}
Output
Row #1:
cell_1.1
cell_1.2
cell_1.3
Row #2:
cell_2.1
cell_2.2
cell_2.3
3. 從表格中的特定單元格提取文本
如果您想進一步深入並從特定單元格中提取文本,您也可以這樣做。為此,我們將檢索最小的文本單位,即每個單元格的內容。當您需要對數據提取進行細粒度控制以進行進一步處理或數據映射時,這是非常完美的。
按照以下步驟從 OneNote 的特定單元格中提取文本:
- 使用
Document類別加載 OneNote 文件。 - 使用
GetChildNodes<Table>()獲取表格節點。 - 遍歷每個表格及其行。
- 使用
GetChildNodes<TableCell>()擷取單元格節點。 - 提取每個單元格中的文本並顯示出來。
以下代碼範例顯示如何使用 C# 從表格中的一行獲取單元格文本:
using Aspose.Note;
// 將文件加載到 Aspose.Note。
Document document = new Document("SampleTable.one");
// 獲取表格節點的列表
IList<Table> nodes = document.GetChildNodes<Table>();
foreach (Table table in nodes)
{
// 遍歷表格行
foreach (TableRow row in table)
{
// 獲取 TableCell 節點列表
IList<TableCell> cellNodes = row.GetChildNodes<TableCell>();
// 遍歷表格單元格
foreach (TableCell cell in cellNodes)
{
// Retrieve text
string text = string.Join(Environment.NewLine,
cell.GetChildNodes<RichText>().Select(e => e.Text)) + Environment.NewLine;
// Print text on the output screen
Console.WriteLine(text);
}
}
}
Output
cell_1.1
cell_1.2
cell_1.3
cell_2.1
cell_2.2
cell_2.3
為什麼使用 Aspose.Note for .NET 進行文本提取?
- 完全離線運行,而不使用 Microsoft OneNote。
- 提取文本,並保留格式和結構。
- 支持所有表格元素(標題、單元格、嵌套表格)。
- 提供強大的 LINQ 支援,以便過濾和查詢內容。
- 輕鬆整合現有的 .NET 應用程式。
無論您是在構建分析工具、自動化腳本,還是自定義筆記轉換器,Aspose.Note 都為您提供所需的靈活性和控制力。
您可以從 Aspose License Page 獲取免費的臨時許可證,以便不受限制地嘗試 Aspose.Note for .NET。申請只需花費一分鐘,然後您將能夠測試該庫的所有功能。
免費額外資源
結論
從 OneNote 的表格中提取文本並不複雜。使用 Aspose.Note for .NET,您可以輕鬆地從整個表格、特定行或單個單元格中獲取文本,只需幾行 C# 代碼。該 API 會處理解析、節點管理和內容遍歷,而您可以專注於根據需要使用這些數據。
如果您有任何問題或需要幫助開始使用,請訪問我們的 free support forum 與 Aspose.Note 團隊聯繫。
常見問題解答
Q: 我可以從我的 OneNote 文件中特定的表格中提取文本嗎?
是的,您可以使用 LINQ 或基於索引的選擇來過濾表節點,以針對特定表進行提取。
Q: 我需要安裝 Microsoft OneNote 才能使用 Aspose.Note for .NET 嗎?
不,Aspose.Note for .NET 獨立運作,不需要 Microsoft OneNote 或任何其他外部軟體。
Q: Aspose.Note for .NET 在文本提取過程中是否能保持表格結構?
是的,它保留了表格的邏輯結構,允許您從整個表格、行或單個單元格中提取內容,同時保持順序。
Q: 我可以從 OneNote 表格中提取格式化文本嗎?
Aspose.Note 主要提取純文字。不過,如果您需要格式細節,您可以訪問和處理豐富文本對象。
Q: Aspose.Note for .NET 是否與 .NET Core 和 .NET 6+ 兼容?
是的,它支持 .NET Framework、.NET Core 以及最新的 .NET 版本,適用於 Windows、Linux 和 macOS。
