Dołącz zaznaczony tekst do dokumentu programu Word

Wstęp

No hej! Czy kiedykolwiek próbowałeś dołączyć tekst z sekcji oznaczonej zakładkami w dokumencie programu Word i okazało się to trudne? Masz szczęście! Ten samouczek przeprowadzi Cię przez proces korzystania z Aspose.Words dla .NET. Podzielimy to na proste kroki, dzięki czemu będziesz mógł łatwo je wykonać. Zanurzmy się i dołączmy tekst z zakładek jak profesjonalista!

Warunki wstępne

Zanim zaczniemy, upewnijmy się, że masz wszystko, czego potrzebujesz:

  • Aspose.Words dla .NET: Upewnij się, że masz go zainstalowanego. Jeśli nie, możeszPobierz to tutaj.
  • Środowisko programistyczne: dowolne środowisko programistyczne .NET, takie jak Visual Studio.
  • Podstawowa znajomość języka C#: Pomocne będzie zrozumienie podstawowych koncepcji programowania w języku C#.
  • Dokument programu Word z zakładkami: dokument programu Word z ustawionymi zakładkami, z których będziemy dodawać tekst.

Importuj przestrzenie nazw

Na początek zaimportujmy niezbędne przestrzenie nazw. Dzięki temu będziemy mieć pewność, że wszystkie potrzebne nam narzędzia będą w zasięgu ręki.

using System;
using Aspose.Words;
using Aspose.Words.Importing;

Podzielmy przykład na szczegółowe kroki.

Krok 1: Załaduj dokument i zainicjuj zmienne

W porządku, zacznijmy od załadowania naszego dokumentu Worda i zainicjowania potrzebnych nam zmiennych.

// Załaduj dokumenty źródłowe i docelowe.
Document srcDoc = new Document("source.docx");
Document dstDoc = new Document("destination.docx");

// Zainicjuj importera dokumentów.
NodeImporter importer = new NodeImporter(srcDoc, dstDoc, ImportFormatMode.KeepSourceFormatting);

// Znajdź zakładkę w dokumencie źródłowym.
Bookmark srcBookmark = srcDoc.Range.Bookmarks["YourBookmarkName"];

Krok 2: Znajdź akapit początkowy i końcowy

Teraz zlokalizujmy akapity, w których zaczyna się i kończy zakładka. Ma to kluczowe znaczenie, ponieważ musimy obsługiwać tekst w tych granicach.

// To jest akapit zawierający początek zakładki.
Paragraph startPara = (Paragraph)srcBookmark.BookmarkStart.ParentNode;

// To jest akapit zawierający koniec zakładki.
Paragraph endPara = (Paragraph)srcBookmark.BookmarkEnd.ParentNode;

if (startPara == null || endPara == null)
    throw new InvalidOperationException("Parent of the bookmark start or end is not a paragraph, cannot handle this scenario yet.");

Krok 3: Zweryfikuj elementy nadrzędne akapitów

Musimy upewnić się, że akapity początkowy i końcowy mają tego samego rodzica. Jest to prosty scenariusz, który pozwala zachować prostotę.

// Ograniczmy się do w miarę prostego scenariusza.
if (startPara.ParentNode != endPara.ParentNode)
    throw new InvalidOperationException("Start and end paragraphs have different parents, cannot handle this scenario yet.");

Krok 4: Zidentyfikuj węzeł do zatrzymania

Następnie musimy określić węzeł, w którym zakończymy kopiowanie tekstu. Będzie to węzeł bezpośrednio po akapicie końcowym.

// Chcemy skopiować wszystkie akapity od akapitu początkowego do akapitu końcowego (włącznie),
// dlatego węzeł, w którym się zatrzymujemy, znajduje się po akapicie końcowym.
Node endNode = endPara.NextSibling;

Krok 5: Dołącz tekst z zakładkami do dokumentu docelowego

Na koniec przejdźmy pętlą przez węzły od akapitu początkowego do węzła za akapitem końcowym i dołączmy je do dokumentu docelowego.

for (Node curNode = startPara; curNode != endNode; curNode = curNode.NextSibling)
{
    // Tworzy to kopię bieżącego węzła i importuje ją (uważa) w kontekście
    // dokumentu docelowego. Importowanie oznacza prawidłowe dostosowanie stylów i identyfikatorów list.
    Node newNode = importer.ImportNode(curNode, true);

    // Dołącz zaimportowany węzeł do dokumentu docelowego.
    dstDoc.FirstSection.Body.AppendChild(newNode);
}

// Zapisz dokument docelowy z dołączonym tekstem.
dstDoc.Save("appended_document.docx");

Wniosek

I masz to! Pomyślnie dodałeś tekst z sekcji oznaczonej zakładkami w dokumencie programu Word przy użyciu Aspose.Words dla .NET. To potężne narzędzie sprawia, że manipulowanie dokumentami jest dziecinnie proste, a teraz masz jeszcze jednego asa w rękawie. Miłego kodowania!

Często zadawane pytania

Czy mogę za jednym razem dodać tekst z wielu zakładek?

Tak, możesz powtórzyć proces dla każdej zakładki i odpowiednio dodać tekst.

Co się stanie, jeśli akapity początkowy i końcowy mają różnych rodziców?

bieżącym przykładzie założono, że mają tego samego rodzica. W przypadku różnych rodziców wymagana jest bardziej złożona obsługa.

Czy mogę zachować oryginalne formatowanie dołączonego tekstu?

Absolutnie! TheImportFormatMode.KeepSourceFormatting gwarantuje zachowanie oryginalnego formatowania.

Czy można dodać tekst w określonym miejscu w dokumencie docelowym?

Tak, możesz dołączyć tekst w dowolnej pozycji, przechodząc do żądanego węzła w dokumencie docelowym.

Co się stanie, jeśli będę musiał dodać tekst z zakładki do nowej sekcji?

Możesz utworzyć nową sekcję w dokumencie docelowym i dołączyć tam tekst.