Εισαγάγετε το έγγραφο στο Αντικατάσταση

Εισαγωγή

Γεια σας, μαέστροι εγγράφων! Βρεθήκατε ποτέ στον κώδικα μέχρι το γόνατο, προσπαθώντας να καταλάβετε πώς να εισαγάγετε ένα έγγραφο του Word σε ένα άλλο απρόσκοπτα; Μην φοβάστε, γιατί σήμερα βουτάμε στον κόσμο του Aspose.Words για το .NET για να κάνουμε αυτή την εργασία παιχνιδάκι. Θα περιηγηθούμε σε έναν λεπτομερή, βήμα προς βήμα οδηγό σχετικά με τον τρόπο χρήσης αυτής της ισχυρής βιβλιοθήκης για την εισαγωγή εγγράφων σε συγκεκριμένα σημεία κατά τη διάρκεια μιας λειτουργίας εύρεσης και αντικατάστασης. Είστε έτοιμοι να γίνετε μάγος του Aspose.Words; Ας ξεκινήσουμε!

Προαπαιτούμενα

Πριν μεταβούμε στον κώδικα, υπάρχουν μερικά πράγματα που πρέπει να έχετε στη θέση του:

  • Visual Studio: Βεβαιωθείτε ότι έχετε εγκαταστήσει το Visual Studio στον υπολογιστή σας. Εάν δεν το έχετε ακόμα, μπορείτε να το κατεβάσετε απόεδώ.
  • Aspose.Words για .NET: Θα χρειαστείτε τη βιβλιοθήκη Aspose.Words. Μπορείτε να το πάρετε από τοAspose website.
  • Βασικές γνώσεις C#: Η βασική κατανόηση της C# και του .NET θα σας βοηθήσει να ακολουθήσετε αυτό το σεμινάριο.

Ωραία, με αυτά που ξεφεύγουν, ας λερώσουμε τα χέρια μας με κάποιο κωδικό!

Εισαγωγή χώρων ονομάτων

Πρώτα πράγματα πρώτα, πρέπει να εισαγάγουμε τους απαραίτητους χώρους ονομάτων για να δουλέψουμε με το Aspose.Words. Αυτό είναι σαν να συγκεντρώνετε όλα τα εργαλεία σας πριν ξεκινήσετε ένα έργο. Προσθέστε αυτά χρησιμοποιώντας οδηγίες στην κορυφή του αρχείου C#:

using System;
using System.Text.RegularExpressions;
using Aspose.Words;
using Aspose.Words.Replacing;
using Aspose.Words.Tables;

Τώρα που έχουμε τις προϋποθέσεις μας, ας αναλύσουμε τη διαδικασία σε βήματα μεγέθους μπουκιάς. Κάθε βήμα είναι κρίσιμο και θα μας φέρει πιο κοντά στον στόχο μας.

Βήμα 1: Ρύθμιση του Καταλόγου Εγγράφων

Αρχικά, πρέπει να καθορίσουμε τον κατάλογο όπου αποθηκεύονται τα έγγραφά μας. Αυτό είναι σαν να στήνεις τη σκηνή πριν από τη μεγάλη παράσταση.

string dataDir = "YOUR DOCUMENT DIRECTORY";

Αντικαθιστώ"YOUR DOCUMENT DIRECTORY" με τη διαδρομή προς τον κατάλογό σας. Εδώ θα ζουν και θα αναπνέουν τα έγγραφά σας.

Βήμα 2: Φορτώστε το κύριο έγγραφο

Στη συνέχεια, φορτώνουμε το κύριο έγγραφο στο οποίο θέλουμε να εισαγάγουμε ένα άλλο έγγραφο. Σκεφτείτε αυτό ως το κύριο στάδιο όπου θα συμβεί όλη η δράση.

Document mainDoc = new Document(dataDir + "Document insertion 1.docx");

Αυτός ο κωδικός φορτώνει το κύριο έγγραφο από τον καθορισμένο κατάλογο.

Βήμα 3: Ορίστε τις επιλογές εύρεσης και αντικατάστασης

Για να βρούμε τη συγκεκριμένη θέση όπου θέλουμε να εισαγάγουμε το έγγραφό μας, χρησιμοποιούμε τη λειτουργία εύρεσης και αντικατάστασης. Αυτό είναι σαν να χρησιμοποιείτε έναν χάρτη για να βρείτε το ακριβές σημείο για τη νέα μας προσθήκη.

FindReplaceOptions options = new FindReplaceOptions
{
    Direction = FindReplaceDirection.Backward,
    ReplacingCallback = new InsertDocumentAtReplaceHandler()
};

Εδώ, ορίζουμε την κατεύθυνση προς τα πίσω και καθορίζουμε έναν προσαρμοσμένο χειριστή επανάκλησης που θα ορίσουμε στη συνέχεια.

Βήμα 4: Εκτελέστε τη λειτουργία αντικατάστασης

Τώρα, λέμε στο κύριο έγγραφό μας να αναζητήσει ένα συγκεκριμένο κείμενο κράτησης θέσης και να το αντικαταστήσει με τίποτα, ενώ χρησιμοποιούμε την προσαρμοσμένη επιστροφή κλήσης για να εισαγάγουμε ένα άλλο έγγραφο.

mainDoc.Range.Replace(new Regex("\\[MY_DOCUMENT\\]"), "", options);
mainDoc.Save(dataDir + "CloneAndCombineDocuments.InsertDocumentAtReplace.docx");

Αυτός ο κωδικός εκτελεί τη λειτουργία εύρεσης και αντικατάστασης και, στη συνέχεια, αποθηκεύει το ενημερωμένο έγγραφο.

Βήμα 5: Δημιουργήστε μια προσαρμοσμένη αντικατάσταση χειριστή επανάκλησης

Ο προσαρμοσμένος χειριστής επανάκλησης είναι εκεί που συμβαίνει το μαγικό. Αυτός ο χειριστής θα καθορίσει τον τρόπο με τον οποίο πραγματοποιείται η εισαγωγή εγγράφου κατά τη λειτουργία εύρεσης και αντικατάστασης.

private class InsertDocumentAtReplaceHandler : IReplacingCallback
{
    ReplaceAction IReplacingCallback.Replacing(ReplacingArgs args)
    {
        Document subDoc = new Document(dataDir + "Document insertion 2.docx");

        // Εισαγάγετε ένα έγγραφο μετά την παράγραφο που περιέχει το κείμενο αντιστοίχισης.
        Paragraph para = (Paragraph)args.MatchNode.ParentNode;
        InsertDocument(para, subDoc);

        // Αφαιρέστε την παράγραφο με το κείμενο αντιστοίχισης.
        para.Remove();
        return ReplaceAction.Skip;
    }
}

Εδώ, φορτώνουμε το έγγραφο που πρόκειται να εισαχθεί και, στη συνέχεια, καλούμε μια βοηθητική μέθοδο για να εκτελέσουμε την εισαγωγή.

Βήμα 6: Καθορίστε τη μέθοδο εισαγωγής εγγράφου

Το τελευταίο κομμάτι του παζλ μας είναι η μέθοδος που ουσιαστικά εισάγει το έγγραφο στην καθορισμένη θέση.

private static void InsertDocument(Node insertionDestination, Document docToInsert)
{
    // Ελέγξτε εάν ο προορισμός εισαγωγής είναι Παράγραφος ή Πίνακας
    if (insertionDestination.NodeType == NodeType.Paragraph || insertionDestination.NodeType == NodeType.Table)
    {
        CompositeNode destinationParent = insertionDestination.ParentNode;

        // Δημιουργήστε ένα NodeImporter για εισαγωγή κόμβων από το έγγραφο προέλευσης
        NodeImporter importer = new NodeImporter(docToInsert, insertionDestination.Document, ImportFormatMode.KeepSourceFormatting);

        // Κάντε βρόχο σε όλους τους κόμβους σε επίπεδο μπλοκ στις ενότητες του εγγράφου προέλευσης
        foreach (Section srcSection in docToInsert.Sections.OfType<Section>())
        {
            foreach (Node srcNode in srcSection.Body)
            {
                // Παραλείψτε την τελευταία κενή παράγραφο μιας ενότητας
                if (srcNode.NodeType == NodeType.Paragraph)
                {
                    Paragraph para = (Paragraph)srcNode;
                    if (para.IsEndOfSection && !para.HasChildNodes)
                        continue;
                }

                // Εισαγάγετε και εισαγάγετε τον κόμβο στον προορισμό
                Node newNode = importer.ImportNode(srcNode, true);
                destinationParent.InsertAfter(newNode, insertionDestination);
                insertionDestination = newNode;
            }
        }
    }
    else
    {
        throw new ArgumentException("The destination node should be either a paragraph or table.");
    }
}

Αυτή η μέθοδος φροντίζει για την εισαγωγή κόμβων από το έγγραφο που πρόκειται να εισαχθεί και την τοποθέτησή τους στο σωστό σημείο στο κύριο έγγραφο.

Σύναψη

Και ορίστε το! Ένας περιεκτικός οδηγός για την εισαγωγή ενός εγγράφου σε άλλο χρησιμοποιώντας το Aspose.Words για .NET. Ακολουθώντας αυτά τα βήματα, μπορείτε εύκολα να αυτοματοποιήσετε τις εργασίες συναρμολόγησης και χειρισμού εγγράφων. Είτε δημιουργείτε ένα σύστημα διαχείρισης εγγράφων είτε απλά χρειάζεται να βελτιστοποιήσετε τη ροή εργασιών επεξεργασίας εγγράφων σας, το Aspose.Words είναι ο έμπιστος βοηθός σας.

Συχνές ερωτήσεις

Τι είναι το Aspose.Words για .NET;

Το Aspose.Words for .NET είναι μια ισχυρή βιβλιοθήκη για τον προγραμματισμό των εγγράφων του Word. Σας επιτρέπει να δημιουργείτε, να τροποποιείτε, να μετατρέπετε και να επεξεργάζεστε έγγραφα του Word με ευκολία.

Μπορώ να εισάγω πολλά έγγραφα ταυτόχρονα;

Ναι, μπορείτε να τροποποιήσετε τον χειριστή επανάκλησης ώστε να χειρίζεται πολλαπλές εισαγωγές κάνοντας επανάληψη σε μια συλλογή εγγράφων.

Υπάρχει δωρεάν δοκιμή διαθέσιμη;

Απολύτως! Μπορείτε να κάνετε λήψη μιας δωρεάν δοκιμής απόεδώ.

Πώς μπορώ να λάβω υποστήριξη για το Aspose.Words;

Μπορείτε να λάβετε υποστήριξη μεταβαίνοντας στοAspose.Words φόρουμ.

Μπορώ να διατηρήσω τη μορφοποίηση του εγγράφου που έχει εισαχθεί;

Ναι, τοNodeImporter class σάς επιτρέπει να καθορίσετε πώς γίνεται ο χειρισμός της μορφοποίησης κατά την εισαγωγή κόμβων από ένα έγγραφο σε άλλο.