Tabele w OneNote pomagają w zachowaniu informacji w porządku, od notatek ze spotkań i dzienników danych po szybkie arkusze porównań. Istnieją pewne przypadki, w których musisz programowo wyodrębnić tekst z tabeli w OneNote. Może chcesz przeanalizować zawartość tabeli, przenieść ją do bazy danych lub przekształcić w inny format.

W tym poradniku pokażemy, jak wyodrębnić tekst z tabel w OneNote za pomocą C#. Nauczysz się, jak uzyskać tekst z całej tabeli, pojedynczego wiersza, a nawet z indywidualnej komórki, używając prostych, łatwych do naśladowania przykładów.

Zacznijmy.

Dlaczego wyodrębniać tekst z tabel w OneNote?

Programiści często muszą wyodrębnić dane z tabel OneNote w celu automatyzacji, raportowania lub integracji z innymi systemami. Oto kilka przykładów z rzeczywistego świata:

  • Eksportuj podsumowania spotkań do uporządkowanych raportów.
  • Przeczytaj dane tabelaryczne z udostępnionych notatek do analizy.
  • Synchronizuj tabele OneNote zewnętrznymi systemami lub pulpitami nawigacyjnymi.

Zamiast ręcznie kopiować dane, Aspose.Note for .NET pozwala na obsługę tego wszystkiego za pomocą kodu w szybki, spójny i w pełni zautomatyzowany sposób.

C# Biblioteka do Ekstrakcji Tekstu z Tabel OneNote

Aspose.Note for .NET to solidne API, które umożliwia programistom tworzenie, odczytywanie, edytowanie i konwertowanie plików OneNote w aplikacjach .NET. Obsługuje bogate modele obiektowe do uzyskiwania dostępu do elementów takich jak strony, tekst, obrazy, kontury i tabele. W celu ekstrakcji tekstu z tabeli, zapewnia klasę Document, która reprezentuje plik OneNote, oraz metody takie jak GetChildNodes(), umożliwiające programistom łatwe lokalizowanie i ekstrakowanie elementów tabeli.

Możesz to pobrać ze strony Aspose.Note for .NET releases page lub zainstalować za pomocą NuGet:

PM> Install-Package Aspose.Note

Jak wyodrębnić tekst z tabel w OneNote

Aspose.Note umożliwia ekstrakcję tekstu z dokumentów OneNote na różnych poziomach:

  • Cała tabela
  • A specific row
  • Pojedyncza komórka

Przejdźmy przez każdy z tych kroków krok po kroku.

Jak wyodrębnić tekst z tabel w OneNote: Przykładowa tabela

Sample Table

Aby dowiedzieć się więcej o wyodrębnianiu tekstu i obrazów z dokumentów OneNote za pomocą C#, zapoznaj się z naszym szczegółowym guide on extracting content from OneNote files.

1. Wyodrębnij tekst z tabeli w OneNote przy użyciu C#

Możemy łatwo wyodrębnić tekst ze wszystkich dostępnych tabel w dokumencie OneNote, używając Aspose.Note for .NET. Przejdziemy przez proces uzyskiwania dostępu do węzłów tabel, odczytywania ich zawartości i wyświetlania wyodrębnionego tekstu w czytelnej formie.

Postępuj zgodnie z poniższymi krokami, aby wyodrębnić tekst z tabel w dokumencie OneNote:

  1. Załaduj plik .one za pomocą klasy Document.
  2. Użyj metody GetChildNodes<Table>(), aby pobrać wszystkie węzły tabeli.
  3. Przejdź przez każdą tabelę i wyodrębnij jej zawartość tekstową.
  4. Drukuj wyniki na konsoli.

Następny przykład kodu pokazuje, jak wyodrębnić tekst ze wszystkich tabel w dokumencie OneNote.

using Aspose.Note;

// Załaduj dokument do Aspose.Note.
Document document = new Document("SampleTable.one");

// Get a list of table nodes
IList<Table> nodes = document.GetChildNodes<Table>();

// Set table count
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. Wyciągnij tekst z konkretnego wiersza w tabeli OneNote

Czasami musisz po prostu wyodrębnić tekst z konkretnego wiersza zamiast z całej tabeli. Będziemy przechodzić przez wszystkie tabele, a następnie przez każdy wiersz, niezależnie wyodrębniając tekst. Jest to użyteczne, gdy musisz analizować lub przetwarzać dane z tabeli na poziomie wierszy.

Możesz wyodrębnić tekst wiersz po wierszu, postępując zgodnie z poniższymi krokami:

  1. Załaduj plik OneNote za pomocą klasy Document.
  2. Get a list of table nodes.
  3. Przejdź przez każdą tabelę, a następnie przez każdy wiersz.
  4. Wyodrębnij i wyświetl tekst z każdego wiersza.

Następujący przykład kodu pokazuje, jak wyodrębnić wiersz tekstu z tabeli za pomocą C#:

using Aspose.Note;

// Załaduj dokument do Aspose.Note.
Document document = new Document("SampleTable.one");

// Uzyskaj listę węzłów tabeli
IList<Table> nodes = document.GetChildNodes<Table>();

// Ustaw liczbę wierszy
int rowCount = 0;

foreach (Table table in nodes)
{
    // Przejdź przez wiersze tabeli
    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. Wyodrębnij tekst z konkretnej komórki w tabeli

Jeśli chcesz jeszcze bardziej zagłębić się i wyodrębnić tekst z konkretnej komórki, możesz to zrobić. W tym celu pobierzemy najmniejszą jednostkę tekstową, tzn. zawartość każdej komórki. To idealne, gdy potrzebujesz szczegółowej kontroli nad wydobywaniem danych do dalszego przetwarzania lub mapowania danych.

Postępuj zgodnie z poniższymi krokami, aby wyodrębnić tekst z konkretnej komórki w tabeli w programie OneNote:

  1. Załaduj dokument OneNote za pomocą klasy Document.
  2. Pobierz węzły tabeli za pomocą GetChildNodes<Table>().
  3. Przejdź przez każdą tabelę i jej wiersze.
  4. Ekstrakuj węzły komórek za pomocą GetChildNodes<TableCell>().
  5. Wyodrębnij tekst z każdej komórki i wyświetl go.

Następujący przykład kodu pokazuje, jak uzyskać tekst komórki z wiersza w tabeli za pomocą C#:

using Aspose.Note;

// Załaduj dokument do Aspose.Note.
Document document = new Document("SampleTable.one");

// Get a list of table nodes
IList<Table> nodes = document.GetChildNodes<Table>();

foreach (Table table in nodes)
{
    // Iteruj przez wiersze tabeli
    foreach (TableRow row in table)
    {
        // Pobierz listę węzłów TableCell
        IList<TableCell> cellNodes = row.GetChildNodes<TableCell>();
        // Iterate through table cells
        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

Dlaczego warto używać Aspose.Note for .NET do ekstrakcji tekstu?

  • Działa całkowicie offline, nie wykorzystując Microsoft OneNote.
  • Extracts text with formatting and structure preserved.
  • Obsługuje wszystkie elementy tabeli (nagłówki, komórki, zagnieżdżone tabele).
  • Oferuje silne wsparcie dla LINQ do filtrowania i zapytań o treści.
  • Łatwa integracja z istniejącymi aplikacjami .NET.

Niezależnie od tego, czy tworzysz narzędzia analityczne, skrypty automatyzacji, czy niestandardowe konwertery notatek, Aspose.Note daje Ci elastyczność i kontrolę, których potrzebujesz.

Możesz uzyskać darmową tymczasową licencję z Aspose License Page, aby wypróbować Aspose.Note for .NET bez ograniczeń. To tylko minuta, aby złożyć wniosek, a będziesz mógł przetestować pełne funkcje biblioteki.

Darmowe Dodatkowe Zasoby

Wnioski

Ekstrakcja tekstu z tabel w OneNote nie musi być skomplikowana. Dzięki Aspose.Note for .NET możesz łatwo uzyskać tekst z całych tabel, konkretnych wierszy lub pojedynczych komórek, używając zaledwie kilku linijek kodu C#. API zajmuje się analizowaniem, zarządzaniem węzłami i przeszukiwaniem treści, podczas gdy ty koncentrujesz się na wykorzystaniu tych danych w sposób, w jaki potrzebujesz.

Jeśli masz jakieś pytania lub potrzebujesz pomocy w rozpoczęciu, odwiedź nasze darmowe forum wsparcia, aby połączyć się z zespołem Aspose.Note.

FAQs

Q: Czy mogę wyodrębnić tekst z określonej tabeli w moim dokumencie OneNote?

Tak, możesz filtrować węzły tabeli za pomocą LINQ lub wyboru opartego na indeksach, aby skierować się do konkretnych tabel do ekstrakcji.

Q: Czy muszę mieć zainstalowany Microsoft OneNote, aby używać Aspose.Note for .NET?

Nie, Aspose.Note for .NET działa niezależnie i nie wymaga Microsoft OneNote ani żadnego innego zewnętrznego oprogramowania.

Q: Czy Aspose.Note for .NET zachowuje strukturę tabeli podczas ekstrakcji tekstu?

Tak, zachowuje logiczną strukturę tabel, pozwalając na wyodrębnienie treści z całych tabel, wierszy lub pojedynczych komórek przy zachowaniu porządku.

Q: Can I extract formatted text from a OneNote table?

Aspose.Note przede wszystkim wyodrębnia zwykły tekst. Jednak można uzyskać dostęp i przetwarzać obiekty tekstu sformatowanego, jeśli potrzebujesz szczegółów dotyczących formatowania.

Q: Czy Aspose.Note for .NET jest zgodny z .NET Core i .NET 6+?

Tak, obsługuje .NET Framework, .NET Core i najnowsze wersje .NET na systemy Windows, Linux i macOS.

Zobacz także