Πώς να συγκρίνετε αρχεία Excel σε Java με το GroupDocs Document Comparison API
Σε πολλές επιχειρήσεις, χρειάζεται να συγκρίνετε αρχεία Excel σε Java για να εντοπίσετε αλλαγές σε οικονομικές αναφορές, επανεξετάσεις δεδομένων ή να επαληθεύσετε τα αποτελέσματα μιας μετανάστευσης. Το χειροκίνητο άνοιγμα δύο βιβλίων εργασίας και η σάρωση κελιού προς κελί είναι επιρρεπές σε σφάλματα και σπαταλά πολύτιμο χρόνο. Αυτό το εκπαιδευτικό υλικό σας δείχνει ακριβώς πώς να συγκρίνετε Excel βιβλία εργασίας προγραμματιστικά χρησιμοποιώντας το GroupDocs.Comparison για Java, παρέχοντας αναφορές diff με τέλεια ακρίβεια σε δευτερόλεπτα.
Γρήγορες απαντήσεις
- Μπορεί το GroupDocs να συγκρίνει αρχεία Excel σε Java; Ναι – απλώς φορτώστε τα αρχεία
.xlsxμε την κλάσηComparerκαι καλέστεcompare. - Πώς να αγνοήσετε κεφαλίδες/υποσέλιδα; Ορίστε
setHeaderFootersComparison(false)στοCompareOptions. - Τι γίνεται με μεγάλα PDF; Αυξήστε τη μνήμη heap του JVM, ενεργοποιήστε τη λειτουργία streaming και χρησιμοποιήστε επιλογές βελτιστοποίησης μνήμης.
- Μπορώ να συγκρίνω PDF με κωδικό πρόσβασης; Παρέχετε τον κωδικό πρόσβασης κατά τη δημιουργία του
Comparer. - Υπάρχει τρόπος να αλλάξω τα χρώματα επισήμανσης; Χρησιμοποιήστε το
StyleSettingsγια τα στοιχεία που εισάγονται, διαγράφονται και τροποποιούνται.
Τι είναι η σύγκριση αρχείων excel java;
Η σύγκριση αρχείων Excel σε Java σημαίνει τον προγραμματιστικό εντοπισμό κάθε προσθήκης, διαγραφής ή τροποποίησης σε επίπεδο κελιού μεταξύ δύο βιβλίων εργασίας .xlsx και την παραγωγή μιας οπτικής αναφοράς diff που επισημαίνει αυτές τις αλλαγές. Η μηχανή GroupDocs.Comparison φορτώνει κάθε φύλλο σε μνήμη, αξιολογεί τύπους, στυλ και δομές φύλλων, και στη συνέχεια δημιουργεί μια αναφορά PDF/HTML πλάι‑πλάι ή επικάλυψη που οι προγραμματιστές μπορούν να ενσωματώσουν σε πίνακες ελέγχου ή να στείλουν μέσω email σε ενδιαφερόμενους.
Γιατί να χρησιμοποιήσετε ένα API σύγκρισης εγγράφων Java;
Η αυτοματοποίηση της δημιουργίας diff εξαλείφει το ανθρώπινο σφάλμα που αποτελεί περίπου 20 % των παραλειπόμενων αλλαγών σε χειροκίνητες ανασκοπήσεις, εξασφαλίζοντας συνεπή και αξιόπιστα αποτελέσματα. Το GroupDocs παρέχει υψηλής ακρίβειας εντοπισμό κάθε τροποποίησης, γρήγορους χρόνους επεξεργασίας και ομοιόμορφο στυλ σε όλα τα μορφότυπα εξόδου, κάτι που αυξάνει την παραγωγικότητα για ομάδες οικονομικών, νομικών και διαχείρισης περιεχομένου.
Υποστηριζόμενες μορφές αρχείων και δυνατότητες
Το GroupDocs.Comparison για Java υποστηρίζει πάνω από 50 μορφές εισόδου και εξόδου, συμπεριλαμβανομένων:
- Έγγραφα: DOCX, DOC, PDF, RTF, ODT
- Φύλλα εργασίας: XLSX, XLS, CSV, ODS
- Παρουσιάσεις: PPTX, PPT, ODP
- Κείμενο: TXT, HTML, XML, MD
- Εικόνες: PNG, JPEG, BMP, GIF (οπτική σύγκριση)
Οι προηγμένες δυνατότητες περιλαμβάνουν διαχείριση εγγράφων με κωδικό πρόσβασης, ανίχνευση πολλαπλών γλωσσών, προσαρμοστική ευαισθησία ανά τύπο εγγράφου, επεξεργασία παρτίδας και επιλογές ανάπτυξης τόσο cloud‑native όσο και on‑premise.
Προαπαιτούμενα και ρύθμιση
Απαιτήσεις συστήματος
- Java Development Kit (JDK): 8 ή νεότερο (συνιστάται JDK 11+)
- Εργαλείο κατασκευής: Maven 3.6+ ή Gradle 6.0+
- Μνήμη: Ελάχιστο 4 GB RAM για μεγάλα αρχεία
- Αποθήκευση: Τουλάχιστον 500 MB ελεύθερα για προσωρινά δεδομένα σύγκρισης
Ρύθμιση Maven
Προσθέστε το αποθετήριο GroupDocs και την εξάρτηση στο pom.xml. Αυτό διασφαλίζει ότι θα λάβετε την επίσημη έκδοση:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/comparison/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-comparison</artifactId>
<version>25.2</version>
</dependency>
</dependencies>
Ρύθμιση άδειας
Για ανάπτυξη και δοκιμές
- Δωρεάν δοκιμή: Κατεβάστε από το GroupDocs Downloads – περιλαμβάνει εξαγόμενα με υδατογράφημα.
- Προσωρινή άδεια: Λάβετε πλήρη πρόσβαση 30 ημερών μέσω του GroupDocs Support.
Για παραγωγή
- Πλήρης άδεια: Αγοράστε μέσω του GroupDocs Purchase για απεριόριστη εμπορική χρήση.
Αρχικοποιήστε την άδεια κατά την εκκίνηση της εφαρμογής:
// License initialization - do this once at application startup
com.groupdocs.comparison.License license = new com.groupdocs.comparison.License();
license.setLicense("path/to/your/license/file.lic");
Συμβουλή επαγγελματία: Αποθηκεύστε το αρχείο άδειας στο φάκελο resources και φορτώστε το με
getClass().getResourceAsStream()για φορητές αναπτύξεις.
Οδηγός βασικής υλοποίησης
Χαρακτηριστικό 1: αγνόηση σύγκρισης κεφαλίδας και υποσέλιδου
Η μέθοδος setHeaderFootersComparison απενεργοποιεί τη σύγκριση του περιεχομένου κεφαλίδας και υποσέλιδου, αποτρέποντας την εμφάνιση άσχετων διαφορών στο diff.
Γιατί είναι σημαντικό: Κεφαλίδες και υποσέλιδα συχνά περιέχουν χρονικές σφραγίδες ή αριθμούς σελίδας που αλλάζουν μεταξύ εκδόσεων αλλά δεν αποτελούν μέρος του ουσιώδους περιεχομένου. Η παράλειψή τους μειώνει το «θόρυβο» και επιταχύνει την επεξεργασία.
Σενάριο πραγματικού κόσμου: Δύο σχέδια σύμβασης έχουν διαφορετικές ημερομηνίες δημιουργίας στο υποσέλιδο· εσείς ενδιαφέρεστε μόνο για τις αλλαγές στις ρήτρες.
import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
import java.io.FileOutputStream;
public class IgnoreHeaderFooterExample {
public static void main(String[] args) throws Exception {
String outputFileName = "YOUR_OUTPUT_DIRECTORY/IgnoreHeaderFooter_result.docx";
try (OutputStream resultStream = new FileOutputStream(outputFileName);
Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_with_footer.docx")) {
comparer.add("YOUR_DOCUMENT_DIRECTORY/target_with_footer.docx");
// Set comparison options to ignore headers and footers
CompareOptions compareOptions = new CompareOptions.Builder()
.setHeaderFootersComparison(false)
.build();
final Path resultPath = comparer.compare(resultStream, new SaveOptions(), compareOptions);
}
}
}
Κύρια οφέλη: πιο καθαρά αποτελέσματα diff, λιγότερα ψευδή θετικά και ταχύτερη εκτέλεση επειδή παραλείπονται αυτά τα τμήματα.
Χαρακτηριστικό 2: ορισμός μεγέθους χαρτιού εξόδου για επαγγελματικές αναφορές
Η απαρίθμηση PaperSize ορίζει τις τυπικές διαστάσεις σελίδας που θα χρησιμοποιήσει το παραγόμενο PDF.
Επιχειρηματικό πλαίσιο: Οι νομικές ομάδες συχνά χρειάζονται εκτυπώσιμες αναφορές σύγκρισης σε συγκεκριμένο μέγεθος χαρτιού για καταθέσεις στο δικαστήριο ή παράδοση σε πελάτες.
Πώς να το εφαρμόσετε: Χρησιμοποιήστε την απαρίθμηση PaperSize στο CompareOptions για να ορίσετε το επιθυμητό μέγεθος.
import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
import com.groupdocs.comparison.options.enums.PaperSize;
public class SetOutputPaperSizeExample {
public static void main(String[] args) throws Exception {
String outputFileName = "YOUR_OUTPUT_DIRECTORY/SetOutputPaperSize_result.docx";
try (OutputStream resultStream = new FileOutputStream(outputFileName);
Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_word.docx")) {
comparer.add("YOUR_DOCUMENT_DIRECTORY/target1_word.docx");
// Set the paper size to A6
CompareOptions compareOptions = new CompareOptions.Builder()
.setPaperSize(PaperSize.A6)
.build();
final Path resultPath = comparer.compare(resultStream, compareOptions);
}
}
}
Τα υποστηριζόμενα μεγέθη περιλαμβάνουν A0‑A10, Letter, Legal, Tabloid και προσαρμοσμένες διαστάσεις. Επιλέξτε A4 για ευρωπαϊκούς πελάτες ή Letter για συνεργάτες στις Η.Π.Α.
Χαρακτηριστικό 3: λεπτομερής ρύθμιση ευαισθησίας σύγκρισης
Η μέθοδος setSensitivityOfComparison ρυθμίζει πόσο λεπτομερώς η μηχανή σύγκρισης αξιολογεί τις αλλαγές, από μεγάλες δομικές επεμβάσεις μέχρι διαφορές ενός μόνο χαρακτήρα.
Η πρόκληση: Διαφορετικές κατηγορίες εγγράφων απαιτούν διαφορετική λεπτομέρεια. Τα νομικά συμβόλαια απαιτούν ακρίβεια επιπέδου χαρακτήρα, ενώ το διαφημιστικό κείμενο μπορεί να χρειάζεται μόνο αλλαγές επιπέδου παραγράφου.
Κλίμακα ευαισθησίας (0‑100):
- 0‑25: Μόνο μεγάλες αλλαγές (προσθήκη/διαγραφή παραγράφου)
- 26‑50: Μέτριες αλλαγές (επεξεργασία προτάσεων)
- 51‑75: Λεπτομερείς αλλαγές (επί επίπεδο λέξης)
- 76‑100: Πολύ λεπτομερείς αλλαγές (επί επίπεδο χαρακτήρα)
import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
public class AdjustComparisonSensitivityExample {
public static void main(String[] args) throws Exception {
String outputFileName = "YOUR_OUTPUT_DIRECTORY/AdjustComparisonSensitivity_result.docx";
try (OutputStream resultStream = new FileOutputStream(outputFileName);
Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_word.docx")) {
comparer.add("YOUR_DOCUMENT_DIRECTORY/target1_word.docx");
// Set sensitivity to 100 for maximum detail
CompareOptions compareOptions = new CompareOptions.Builder()
.setSensitivityOfComparison(100)
.build();
final Path resultPath = comparer.compare(resultStream, compareOptions);
}
}
}
Συνιστώμενες ρυθμίσεις: Νομικά έγγραφα 90‑100, περιεχόμενο μάρκετινγκ 40‑60, τεχνικές προδιαγραφές 70‑80.
Χαρακτηριστικό 4: προσαρμογή στυλ αλλαγών για καλύτερη οπτική επικοινωνία
Το αντικείμενο StyleSettings σας επιτρέπει να ορίσετε χρώματα, γραμματοσειρές, περιθώρια και άλλα οπτικά στοιχεία για το εισαχθέν, διαγραμμένο και τροποποιημένο περιεχόμενο.
Γιατί τα προσαρμοσμένα στυλ έχουν σημασία: Η προεπιλεγμένη επισήμανση μπορεί να συγκρούεται με την εταιρική ταυτότητα ή τις οδηγίες προσβασιμότητας. Η προσαρμογή χρωμάτων, γραμματοσειρών και περιγραμμάτων κάνει τα diff άμεσα κατανοητά.
Παράδειγμα: Κόκκινο φόντο για διαγραφές, πράσινο για εισαγωγές, μπλε για τροποποιήσεις.
import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
import com.groupdocs.comparison.options.save.SaveOptions;
import com.groupdocs.comparison.options.style.StyleSettings;
import java.awt.Color;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class CustomizeChangesStylesStreamExample {
public static void main(String[] args) throws Exception {
String outputFileName = "YOUR_OUTPUT_DIRECTORY/CustomizeChangesStylesStream_result.docx";
try (InputStream sourceFile = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/source_word.docx");
InputStream targetFile = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/target1_word.docx");
OutputStream resultStream = new FileOutputStream(outputFileName);
Comparer comparer = new Comparer(sourceFile)) {
comparer.add(targetFile);
// Customize change styles for professional appearance
StyleSettings insertedStyle = new StyleSettings();
insertedStyle.setHighlightColor(Color.GREEN); // Green for additions
StyleSettings deletedStyle = new StyleSettings();
deletedStyle.setHighlightColor(Color.RED); // Red for deletions
StyleSettings changedStyle = new StyleSettings();
changedStyle.setHighlightColor(Color.BLUE); // Blue for modifications
CompareOptions compareOptions = new CompareOptions.Builder()
.setInsertedItemStyle(insertedStyle)
.setDeletedItemStyle(deletedStyle)
.setChangedItemStyle(changedStyle)
.build();
final Path resultPath = comparer.compare(resultStream, compareOptions);
}
}
}
Οι προχωρημένες επιλογές επιτρέπουν την τροποποίηση του πάχους γραμματοσειράς, του μεγέθους, της διαφάνειας φόντου, του στυλ περιγράμματος και της συμπεριφοράς διαγράμμισης.
Πώς να ορίσετε το μέγεθος χαρτιού java σε αναφορές σύγκρισης
Comparer είναι η κύρια κλάση που συντονίζει τις λειτουργίες σύγκρισης εγγράφων. Φορτώστε ένα στιγμιότυπο Comparer με το πηγαίο βιβλίο εργασίας, διαμορφώστε ένα αντικείμενο CompareOptions και καλέστε setPaperSize χρησιμοποιώντας την επιθυμητή τιμή της απαρίθμησης PaperSize. Αυτή η μοναδική ρύθμιση ορίζει τις διαστάσεις σελίδας του παραγόμενου PDF, εξασφαλίζοντας σωστή εκτύπωση χωρίς χειροκίνητη κλιμάκωση.
import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
import com.groupdocs.comparison.options.enums.PaperSize;
public class SetOutputPaperSizeExample {
public static void main(String[] args) throws Exception {
String outputFileName = "YOUR_OUTPUT_DIRECTORY/SetOutputPaperSize_result.docx";
try (OutputStream resultStream = new FileOutputStream(outputFileName);
Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_word.docx")) {
comparer.add("YOUR_DOCUMENT_DIRECTORY/target1_word.docx");
// Set the paper size to A6
CompareOptions compareOptions = new CompareOptions.Builder()
.setPaperSize(PaperSize.A6)
.build();
final Path resultPath = comparer.compare(resultStream, compareOptions);
}
}
}
Μπορείτε να συνδυάσετε αυτή τη ρύθμιση με προσαρμοσμένα περιθώρια και σημαίες προσανατολισμού για να δημιουργήσετε μια διάταξη που συμμορφώνεται με τις οδηγίες υποβολής εγγράφων του οργανισμού σας, εγγυώμενη επαγγελματική εμφάνιση κάθε φορά.
Συχνά προβλήματα και αντιμετώπιση
Διαχείριση μνήμης για μεγάλα έγγραφα
Πρόβλημα: OutOfMemoryError κατά τη σύγκριση αρχείων μεγαλύτερων από 50 MB.
Λύση: Αυξήστε τη μνήμη heap του JVM (-Xmx8g) και ενεργοποιήστε τη λειτουργία streaming.
# Increase heap size for large document processing
java -Xmx4g -XX:MaxMetaspaceSize=512m YourComparisonApp
Διαχείριση κατεστραμμένων ή κωδικοποιημένων αρχείων
PasswordRequiredException ρίχνεται όταν το API συναντά κρυπτογραφημένο έγγραφο χωρίς παρεχόμενο κωδικό πρόσβασης.
Ζήτημα: Η σύγκριση αποτυγχάνει σε κλειδωμένα έγγραφα.
Πρόληψη: Παρέχετε τον κωδικό πρόσβασης κατά τη δημιουργία του Comparer και πιάστε το PasswordRequiredException.
// Check document accessibility before comparison
try {
Comparer comparer = new Comparer(sourceFile, "password123");
// Document loaded successfully, proceed with comparison
} catch (PasswordRequiredException ex) {
// Handle password‑protected documents
log.error("Document requires password: " + sourceFile);
} catch (CorruptedFileException ex) {
// Handle corrupted files gracefully
log.error("File corruption detected: " + sourceFile);
}
Βελτιστοποίηση απόδοσης για επεξεργασία παρτίδας
Πρόκληση: Αποτελεσματική επεξεργασία 100+ ζευγών εγγράφων.
Λύση: Χρησιμοποιήστε μια ομάδα νήματος σταθερού μεγέθους και υποβάλετε κάθε σύγκριση ως ξεχωριστό task.
ExecutorService executor = Executors.newFixedThreadPool(4);
List<Future<ComparisonResult>> futures = new ArrayList<>();
for (DocumentPair pair : documentPairs) {
futures.add(executor.submit(() -> compareDocuments(pair)));
}
// Wait for all comparisons to complete
for (Future<ComparisonResult> future : futures) {
ComparisonResult result = future.get();
// Process results
}
executor.shutdown();
Προβλήματα ειδικά για μορφές
- Σαρωμένα PDF: Εφαρμόστε προεπεξεργασία OCR πριν από τη σύγκριση.
- Έγγραφα Word: Απενεργοποιήστε το υπάρχον “Track Changes” για να αποφύγετε ψευδείς diff.
- Ενσωματωμένα αντικείμενα: Εξάγετε και συγκρίνετε τα ξεχωριστά για ακρίβεια.
Καλές πρακτικές και συμβουλές απόδοσης
1. Προεπεξεργασία εγγράφων
Αφαιρέστε περιττά μεταδεδομένα και τυποποιήστε τις γραμματοσειρές πριν από τη σύγκριση για βελτιωμένη ταχύτητα και ακρίβεια.
// Example preprocessing workflow
public void preprocessDocument(String filePath) {
// Remove comments and tracked changes
// Standardize formatting
// Extract text‑only version for pure content comparison
}
2. Βέλτιστα προφίλ διαμόρφωσης
Δημιουργήστε επαναχρησιμοποιήσιμα presets CompareOptions για κάθε τύπο εγγράφου (νομικά, μάρκετινγκ, τεχνικά) και επαναχρησιμοποιήστε τα σε όλη τη διαδικασία σας.
public class ComparisonProfiles {
public static CompareOptions getLegalDocumentProfile() {
return new CompareOptions.Builder()
.setSensitivityOfComparison(95)
.setHeaderFootersComparison(false)
.setShowRevisions(true)
.build();
}
public static CompareOptions getMarketingContentProfile() {
return new CompareOptions.Builder()
.setSensitivityOfComparison(45)
.setIgnoreFormatting(true)
.setFocusOnContent(true)
.build();
}
}
3. Αξιόπιστος χειρισμός σφαλμάτων και καταγραφής
ComparisonException υποδεικνύει αποτυχία κατά τη διαδικασία σύγκρισης και παρέχει λεπτομερείς διαγνωστικές πληροφορίες. Τυλίξτε τις κλήσεις σύγκρισης σε μπλοκ try‑catch, καταγράψτε τις λεπτομέρειες του ComparisonException και εφαρμόστε ασφαλή fallback όταν χρειάζεται.
public ComparisonResult safeCompareDocuments(String source, String target) {
try {
return performComparison(source, target);
} catch (Exception ex) {
logger.error("Comparison failed for {} vs {}: {}", source, target, ex.getMessage());
return ComparisonResult.failure(ex.getMessage());
}
}
4. Caching και έξυπνη επαναχρησιμοποίηση
- Αποθηκεύστε τα αποτελέσματα diff για ταυτοπροσωπικές ζεύγες αρχείων.
- Διατηρήστε αποτυπώματα εγγράφων (hashes) για να παραλείψετε αμετάβλητα αρχεία.
- Χρησιμοποιήστε ασύγχρονες ουρές για μη‑κριτικές συγκρίσεις ώστε η διεπαφή χρήστη να παραμένει ανταποκρινόμενη.
Σενάρια ενσωμάτωσης πραγματικού κόσμου
Σενάριο 1: αυτοματοποιημένη διαδικασία ελέγχου συμβάσεων
@Service
public class ContractReviewService {
public void processContractRevision(String originalContract, String revisedContract) {
CompareOptions legalOptions = ComparisonProfiles.getLegalDocumentProfile();
try (Comparer comparer = new Comparer(originalContract)) {
comparer.add(revisedContract);
Path result = comparer.compare(generateOutputPath(), legalOptions);
// Send comparison report to legal team
emailService.sendComparisonReport(result, legalTeamEmails);
// Log changes for audit trail
auditService.logDocumentChanges(extractChanges(result));
}
}
}
Σενάριο 2: ενσωμάτωση σε σύστημα διαχείρισης περιεχομένου
@RestController
public class DocumentComparisonController {
@PostMapping("/api/documents/compare")
public ResponseEntity<ComparisonReport> compareDocuments(
@RequestParam("source") MultipartFile source,
@RequestParam("target") MultipartFile target,
@RequestParam(value = "sensitivity", defaultValue = "75") int sensitivity) {
CompareOptions options = new CompareOptions.Builder()
.setSensitivityOfComparison(sensitivity)
.build();
ComparisonReport report = documentComparisonService.compare(source, target, options);
return ResponseEntity.ok(report);
}
}
Συχνές ερωτήσεις
Ε: Μπορώ να αγνοήσω κεφαλίδες και υποσέλιδα κατά τη σύγκριση στο GroupDocs για Java;
Α: Ναι, καλέστε setHeaderFootersComparison(false) στο CompareOptions. Αυτό αφαιρεί τον θόρυβο των δυναμικών κεφαλίδων/υποσέλιδων από το diff.
Ε: Πώς ορίζω το μέγεθος χαρτιού εξόδου σε Java χρησιμοποιώντας το GroupDocs;
Α: Χρησιμοποιήστε setPaperSize(PaperSize.A6) (ή οποιαδήποτε άλλη τιμή της απαρίθμησης) στο CompareOptions. Αυτό δημιουργεί ένα PDF έτοιμο για εκτύπωση στο επιλεγμένο μέγεθος.
Ε: Είναι δυνατόν να ρυθμίσω την ευαισθησία σύγκρισης για διαφορετικούς τύπους εγγράφων;
Α: Απόλυτα. Κλήστε setSensitivityOfComparison(85) για νομικά συμβόλαια ή setSensitivityOfComparison(45) για σχέδια μάρκετινγκ ώστε να ελέγξετε την λεπτομέρεια.
Ε: Μπορώ να προσαρμόσω το στυλ του κειμένου που εισάγεται, διαγράφεται ή αλλάζει κατά τη σύγκριση;
Α: Ναι. Δημιουργήστε μια παρουσία StyleSettings για κάθε τύπο αλλαγής και ορίστε χρώματα, γραμματοσειρές ή περιθώρια πριν τη μεταβίβαση στο CompareOptions.
Ε: Ποια είναι τα προαπαιτούμενα για να ξεκινήσω με το GroupDocs Comparison σε Java;
Α: Χρειάζεστε JDK 8+ (συνιστάται JDK 11+), Maven 3.6+ ή Gradle 6.0+, τουλάχιστον 4 GB RAM και έγκυρη άδεια GroupDocs (διαθέσιμη δωρεάν δοκιμή).
Ε: Πώς διαχειρίζομαι έγγραφα με κωδικό πρόσβασης στο GroupDocs.Comparison;
Α: Περνάτε τον κωδικό ως δεύτερο όρισμα κατά τη δημιουργία του Comparer: new Comparer(sourceFile, "myPassword"). Πιάστε το PasswordRequiredException για να διαχειριστείτε τα σφάλματα με χάρη.
Ε: Ποιες μορφές αρχείων υποστηρίζει το GroupDocs.Comparison για Java;
Α: Πάνω από 50 μορφές, συμπεριλαμβανομένων DOCX, PDF, XLSX, PPTX, TXT, HTML, XML και κοινών τύπων εικόνας (PNG, JPEG). Το API ανιχνεύει αυτόματα τις μορφές, αλλά μπορείτε να τις ορίσετε ρητά για βελτιωμένη απόδοση παρτίδας.
Συμπέρασμα
Με τη χρήση του GroupDocs.Comparison για Java, μπορείτε να αυτοματοποιήσετε την επίπονη εργασία σύγκρισης βιβλίων εργασίας Excel—και οποιουδήποτε άλλου υποστηριζόμενου μορφότυπου—με ακρίβεια, ταχύτητα και συνέπεια. Ενσωματώστε τα αποσπάσματα κώδικα και τις βέλτιστες πρακτικές από αυτόν τον οδηγό στις CI/CD pipelines, στα συστήματα διαχείρισης εγγράφων ή στα προσαρμοσμένα εργαλεία ελέγχου για να αποκομίσετε μετρήσιμα κέρδη παραγωγικότητας.
Τελευταία ενημέρωση: 2026-11-01
Δοκιμασμένο με: GroupDocs.Comparison 25.2 for Java
Συγγραφέας: GroupDocs
// Use streaming for memory efficiency
try (Comparer comparer = new Comparer(sourceStream)) {
// Process in chunks for very large documents
CompareOptions options = new CompareOptions.Builder()
.setMemoryOptimization(true) // Enable memory optimization
.build();
}