Πώς να Συγκρίνετε Αρχεία XLSX σε C# Χρησιμοποιώντας Ροές – Πλήρης Οδηγός
Η σύγκριση των λογιστικών φύλλων Excel χειροκίνητα είναι κουραστική και επιρρεπής σε σφάλματα, ειδικά όταν πρέπει να επικυρώσετε μεγάλες οικονομικές αναφορές ή να ελέγξετε σύνολα δεδομένων. Σε αυτό το εκπαιδευτικό υλικό θα ανακαλύψετε πώς να συγκρίνετε xlsx αρχεία αποδοτικά με το GroupDocs.Comparison for .NET χρησιμοποιώντας επεξεργασία βασισμένη σε ροές. Θα περάσουμε βήμα προς βήμα, θα εξηγήσουμε γιατί οι ροές είναι σημαντικές και θα σας δώσουμε πρακτικές συμβουλές που μπορείτε να αντιγράψετε στα δικά σας έργα.
Γρήγορες Απαντήσεις
- What library handles Excel comparison? GroupDocs.Comparison for .NET.
- Can I compare files without saving them to disk? Ναι—χρησιμοποιήστε ροές για να εργάζεστε απευθείας με δεδομένα στη μνήμη.
- Is a license required for production? Απαιτείται εμπορική άδεια· διατίθεται δωρεάν δοκιμή.
- What .NET versions are supported? .NET Framework 4.5+, .NET Core 3.1+, .NET 5/6/7.
- How many Excel formats are covered? Πάνω από 20, συμπεριλαμβανομένων .xls, .xlsx, .xlsm, και .csv.
Τι είναι το “πώς να συγκρίνετε xlsx”;
“πώς να συγκρίνετε xlsx” αναφέρεται στον προγραμματιστικό εντοπισμό διαφορών μεταξύ δύο αρχείων βιβλίου εργασίας Excel. Το GroupDocs.Comparison for .NET διαβάζει κάθε βιβλίο εργασίας, αξιολογεί αλλαγές σε επίπεδο κελιού και δημιουργεί ένα έγγραφο αποτελέσματος με επισήμανση που δείχνει προσθήκες, διαγραφές και τροποποιήσεις. Η σύγκριση επισημαίνει τα τροποποιημένα κελιά, γραμμές και φύλλα, καθιστώντας εύκολη την επισκόπηση των διαφορών με μια ματιά.
Γιατί να χρησιμοποιήσετε σύγκριση βασισμένη σε ροές;
Η επεξεργασία ροών μειώνει την πίεση στη μνήμη διαβάζοντας τα αρχεία σε τμήματα αντί να φορτώνει ολόκληρο το βιβλίο εργασίας στη RAM. Το GroupDocs.Comparison μπορεί να χειριστεί 50 + μορφές εισόδου και εξόδου και να επεξεργαστεί πολυεκατοντάδες‑σελίδες λογιστικά φύλλα διατηρώντας τη μέγιστη χρήση μνήμης κάτω από 100 MB σε τυπικό εξοπλισμό διακομιστή. Αυτό το καθιστά ιδανικό για web services, micro‑services και εργασίες batch on‑premise.
Προαπαιτούμενα
- GroupDocs.Comparison for .NET – κατεβάστε από την επίσημη ιστοσελίδα εδώ.
- C# development environment – Visual Studio 2022 ή οποιοδήποτε IDE που υποστηρίζει .NET 6+.
- Excel files – δύο βιβλία εργασίας
.xlsxπου θέλετε να συγκρίνετε. - Basic understanding of streams – οι έννοιες του
System.IO.Streamχρησιμοποιούνται σε όλο το παράδειγμα.
Εισαγωγή Χώρων Ονομάτων
Οι παρακάτω χώροι ονομάτων σας δίνουν πρόσβαση στη μηχανή σύγκρισης και στα βοηθητικά εργαλεία ροών.
Ο χώρος ονομάτων GroupDocs.Comparison περιέχει τις κύριες κλάσεις σύγκρισης, ενώ το System.IO παρέχει τους τύπους FileStream και MemoryStream που χρειάζονται για τη διαχείριση ροών.
Οδηγός Υλοποίησης Βήμα‑βήμα
Πώς η χρήση ροών επηρεάζει την απόδοση;
Φορτώστε κάθε βιβλίο εργασίας με File.OpenRead() και περάστε τη ροή απευθείας στον συγκριτή. Αυτή η προσέγγιση αποφεύγει τα προσωρινά αρχεία, μειώνει τον χρόνο I/O έως και 30 % σε SSD και διατηρεί τη διαδικασία πλήρως στη μνήμη, κάτι κρίσιμο για APIs υψηλής διαπερατότητας.
Βήμα 1: Αρχικοποίηση Μεταβλητών Εξόδου
Ορίστε πού θα αποθηκευτεί το αποτέλεσμα της σύγκρισης. Η χρήση του Path.Combine() εγγυάται τον σωστό διαχωριστικό φακέλου σε Windows, Linux ή macOS.
Συμβουλή: Σε παραγωγή, γράψτε το αποτέλεσμα σε έναν προσωρινό φάκελο ή σε bucket αποθήκευσης cloud για να διατηρήσετε καθαρό τον φάκελο της εφαρμογής.
Βήμα 2: Δημιουργία Αντικειμένου Comparer
Η κλάση Comparer είναι το κεντρικό στοιχείο που οργανώνει τη σύγκριση δύο ή περισσότερων εγγράφων.
Δημιουργήστε μια παρουσία Comparer ανοίγοντας το πηγαίο βιβλίο εργασίας με File.OpenRead(). Η δήλωση using εξασφαλίζει ότι η ροή του αρχείου κλείνει αυτόματα, αποτρέποντας διαρροές χειριστών αρχείων.
Βήμα 3: Προσθήκη Στοχευμένου Εγγράφου
Προσθέστε το δεύτερο βιβλίο εργασίας στον συγκριτή. Μπορείτε να αλυσίσετε επιπλέον στόχους αν χρειάζεται να συγκρίνετε ένα κύριο αρχείο με πολλές παραλλαγές—χρήσιμο για περιφερειακές αναφορές ή σενάρια ελέγχου εκδόσεων.
Βήμα 4: Εκτέλεση Σύγκρισης
Κληθείτε τη μέθοδο Compare για να δημιουργήσετε το έγγραφο diff. Το αποτέλεσμα γράφεται σε μια νέα ροή που δημιουργείται με File.Create(). Το αρχείο εξόδου επισημαίνει όλα τα αλλαγμένα κελιά, γραμμές και φύλλα, καθιστώντας την οπτική ανασκόπηση απλή.
Compare method executes the comparison and returns the result document as a stream.
Βήμα 5: Εμφάνιση Μηνύματος Επιτυχίας
Αφού ολοκληρωθεί η σύγκριση, καταγράψτε ένα σύντομο μήνυμα επιτυχίας που περιλαμβάνει τη διαδρομή εξόδου. Σε πραγματικό API, θα επιστρέφατε τη ροή στον καλούντα ή θα την αποθηκεύατε σε αποθήκευση cloud για μετέπειτα ανάκτηση.
Συχνά Προβλήματα και Επίλυση
- File‑in‑use errors: Βεβαιωθείτε ότι καμία άλλη διεργασία (συμπεριλαμβανομένου του Excel) δεν έχει το αρχείο ανοιχτό. Οι ροές που ανοίγονται με
File.OpenRead()αποκτούν κλείδωμα μόνο για ανάγνωση, το οποίο μειώνει τις περισσότερες συγκρούσεις. - Memory spikes with huge files: Για βιβλία εργασίας άνω των 100 MB, ενεργοποιήστε τη σημαία
ComparerOptionsEnableMemoryOptimization(αν είναι διαθέσιμη) και παρακολουθήστε τη μνήμη του διαδικασίου. - Mixed format comparisons: Το GroupDocs.Comparison υποστηρίζει συνεπείς ζεύγη μορφών· αποφύγετε τη σύγκριση ενός αρχείου
.xlsμε ένα.xlsxστην ίδια λειτουργία για να προλάβετε ασυμφωνίες διάταξης. - Stream positioning: Όταν επαναχρησιμοποιείτε μια ροή, πάντα επαναφέρετε τη θέση της με
stream.Seek(0, SeekOrigin.Begin)πριν τη περάσετε στον συγκριτή.
Robust error handling: Πιάστε την εξαίρεση ComparisonException για κατεστραμμένα βιβλία εργασίας και καταγράψτε το όνομα του αρχείου για μετέπειτα διερεύνηση.ComparisonException ρίχνεται από το GroupDocs.Comparison όταν το εισερχόμενο έγγραφο είναι κατεστραμμένο ή χρησιμοποιεί μη υποστηριζόμενη μορφή.
Απόδοση και Καλές Πρακτικές
- Dispose streams promptly: Τυλίξτε κάθε
FileStreamσε ένα μπλοκusing. - Batch processing: Χρησιμοποιήστε
Parallel.ForEachμε async συγκριτές για να επεξεργαστείτε πολλαπλά ζεύγη αρχείων ταυτόχρονα, αλλά περιορίστε το βαθμό παραλληλισμού για να αποφύγετε υπερφόρτωση CPU. - Robust error handling: Πιάστε την εξαίρεση
ComparisonExceptionγια κατεστραμμένα βιβλία εργασίας και καταγράψτε το όνομα του αρχείου για μετέπειτα διερεύνηση. - Validate input streams: Επαληθεύστε τον τύπο MIME ή την κεφαλίδα του αρχείου πριν τη σύγκριση για να απορρίψετε μη‑Excel μεταφορτώσεις νωρίς.
ComparerOptions παρέχει ρυθμίσεις διαμόρφωσης για τη διαδικασία σύγκρισης, όπως βελτιστοποίηση μνήμης και έλεγχο ευαισθησίας.
Σενάρια Προχωρημένης Χρήσης
- Database BLOB comparison: Ανακτήστε το Excel BLOB από το SQL Server, τυλίξτε το σε
MemoryStreamκαι δώστε το απευθείας στον συγκριτή—χωρίς ανάγκη προσωρινών αρχείων. - Cloud storage integration: Χρησιμοποιήστε το Azure Blob Storage SDK για να λάβετε ένα
BlobStreamκαι περάστε το στον συγκριτή, ενεργοποιώντας πλήρως serverless ροές εργασίας. - Real‑time API endpoint: Εκθέστε ένα endpoint POST που δέχεται δύο αρχεία multipart/form‑data, τα συγκρίνει άμεσα και επιστρέφει το diff ως ροή που μπορεί να ληφθεί.
Συμπέρασμα
Αξιοποιώντας το API βασισμένο σε ροές του GroupDocs.Comparison, αποκτάτε έναν μνημονικο‑αποδοτικό, ασφαλή, και κλιμακώσιμη τρόπο σύγκρισης αρχείων XLSX σε C#. Αυτός ο οδηγός κάλυψε τα πάντα, από τη ρύθμιση μέχρι προχωρημένα σενάρια cloud, παρέχοντάς σας μια σταθερή βάση για ενσωμάτωση σύγκρισης λογιστικών φύλλων σε οποιαδήποτε λύση .NET.
Συχνές Ερωτήσεις
Q: Is GroupDocs.Comparison for .NET compatible with all Excel formats?
A: Ναι, υποστηρίζει πάνω από 20 μορφές σχετικές με Excel, συμπεριλαμβανομένων .xls, .xlsx, .xlsm και .csv, εξασφαλίζοντας ευρεία συμβατότητα μεταξύ παλαιών και σύγχρονων βιβλίων εργασίας.
Q: Can I customize the visual style of the comparison result?
A: Απόλυτα. Το API σας επιτρέπει να ορίσετε χρώματα επισήμανσης, να αλλάξετε το στυλ περιγράμματος και να ρυθμίσετε το επίπεδο ευαισθησίας αλλαγών μέσω του ComparisonOptions.
Q: Do I need a commercial license for production use?
A: Απαιτείται έγκυρη άδεια GroupDocs.Comparison για οποιαδήποτε εμπορική ανάπτυξη. Μπορείτε να αποκτήσετε μία εδώ.
Q: Is a free trial available?
A: Ναι, μπορείτε να κατεβάσετε μια πλήρως λειτουργική δοκιμή εδώ για να αξιολογήσετε όλες τις δυνατότητες πριν την αγορά.
Q: Where can I get community support?
A: Το φόρουμ GroupDocs.Comparison εδώ είναι ενεργό σημείο για ερωτήσεις και ανταλλαγή λύσεων με άλλους προγραμματιστές.
Τελευταία Ενημέρωση: 2026-06-21
Δοκιμάστηκε Με: GroupDocs.Comparison 23.10 for .NET
Συγγραφέας: GroupDocs
using System;
using System.IO;
string outputDirectory = "Your Document Directory";
string outputFileName = Path.Combine(outputDirectory, "result.xlsx");
using (Comparer comparer = new Comparer(File.OpenRead("source.xlsx")))
comparer.Add(File.OpenRead("target.xlsx"));
comparer.Compare(File.Create(outputFileName));
Console.WriteLine($"\nDocuments compared successfully.\nCheck output in {outputDirectory}.");