Δημιουργία πίνακα από Datatable

Εισαγωγή

Η δυναμική δημιουργία πινάκων από πηγές δεδομένων είναι μια κοινή εργασία σε πολλές εφαρμογές. Είτε δημιουργείτε αναφορές, τιμολόγια ή περιλήψεις δεδομένων, η δυνατότητα συμπλήρωσης ενός πίνακα με δεδομένα μέσω προγραμματισμού μπορεί να σας εξοικονομήσει πολύ χρόνο και προσπάθεια. Σε αυτό το σεμινάριο, θα διερευνήσουμε πώς να δημιουργήσετε έναν πίνακα από έναν πίνακα δεδομένων χρησιμοποιώντας το Aspose.Words για Java. Θα αναλύσουμε τη διαδικασία σε διαχειρίσιμα βήματα, διασφαλίζοντας ότι έχετε ξεκάθαρη κατανόηση κάθε μέρους.

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

Πριν βουτήξετε στον κώδικα, ας βεβαιωθούμε ότι έχετε όλα όσα χρειάζεστε για να ξεκινήσετε:

  1. Java Development Kit (JDK): Βεβαιωθείτε ότι έχετε εγκαταστήσει το JDK στον υπολογιστή σας. Μπορείτε να το κατεβάσετε από το Ιστοσελίδα Oracle .

  2. Aspose.Words για Java: Θα χρειαστείτε τη βιβλιοθήκη Aspose.Words. Μπορείτε να κάνετε λήψη της πιο πρόσφατης έκδοσης από Σελίδα εκδόσεων του Aspose .

  3. IDE: Ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) όπως το IntelliJ IDEA ή το Eclipse θα διευκολύνει την κωδικοποίηση.

  4. Βασικές γνώσεις Java: Η εξοικείωση με τις έννοιες προγραμματισμού Java θα σας βοηθήσει να κατανοήσετε καλύτερα τα αποσπάσματα κώδικα.

  5. Δείγμα δεδομένων: Για αυτό το σεμινάριο, θα χρησιμοποιήσουμε ένα αρχείο XML με το όνομα “List of people.xml” για την προσομοίωση μιας πηγής δεδομένων. Μπορείτε να δημιουργήσετε αυτό το αρχείο με δείγματα δεδομένων για δοκιμή.

Βήμα 1: Δημιουργήστε ένα νέο έγγραφο

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

Document doc = new Document();

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

Βήμα 2: Εκκίνηση του DocumentBuilder

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

DocumentBuilder builder = new DocumentBuilder(doc);

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

Βήμα 3: Ορισμός προσανατολισμού σελίδας

Εφόσον αναμένουμε ότι ο πίνακας μας θα είναι ευρύς, θα ορίσουμε τον προσανατολισμό της σελίδας σε οριζόντιο.

doc.getFirstSection().getPageSetup().setOrientation(Orientation.LANDSCAPE);

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

Βήμα 4: Φόρτωση δεδομένων από XML

Τώρα, πρέπει να φορτώσουμε τα δεδομένα μας από το αρχείο XML σε aDataTable. Από εδώ προέρχονται τα δεδομένα μας.

DataSet ds = new DataSet();
ds.readXml(getMyDir() + "List of people.xml");
DataTable dataTable = ds.getTables().get(0);

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

Βήμα 5: Εισαγάγετε τον Πίνακα από το DataTable

Τώρα έρχεται το συναρπαστικό μέρος: εισαγωγή των δεδομένων μας στο έγγραφο ως πίνακα.

Table table = importTableFromDataTable(builder, dataTable, true);

Καλούμε τη μέθοδοimportTableFromDataTable , περνώντας τοDocumentBuilder , μαςDataTable, και ένα boolean για να υποδείξει εάν θα συμπεριληφθούν οι επικεφαλίδες στηλών.

Βήμα 6: Δώστε στυλ στον πίνακα

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

table.setStyleIdentifier(StyleIdentifier.MEDIUM_LIST_2_ACCENT_1);
table.setStyleOptions(TableStyleOptions.FIRST_ROW | TableStyleOptions.ROW_BANDS | TableStyleOptions.LAST_COLUMN);

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

Βήμα 7: Αφαιρέστε τα ανεπιθύμητα κύτταρα

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

table.getFirstRow().getLastCell().removeAllChildren();

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

Βήμα 8: Αποθηκεύστε το έγγραφο

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

doc.save(getArtifactsDir() + "WorkingWithTables.BuildTableFromDataTable.docx");

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

Η μέθοδος importTableFromDataTable

Ας ρίξουμε μια πιο προσεκτική ματιά στοimportTableFromDataTable μέθοδος. Αυτή η μέθοδος είναι υπεύθυνη για τη δημιουργία της δομής του πίνακα και τη συμπλήρωσή της με δεδομένα.

Βήμα 1: Ξεκινήστε τον πίνακα

Αρχικά, πρέπει να ξεκινήσουμε έναν νέο πίνακα στο έγγραφο.

Table table = builder.startTable();

Αυτό προετοιμάζει έναν νέο πίνακα στο έγγραφό μας.

Βήμα 2: Προσθήκη επικεφαλίδων στηλών

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

if (importColumnHeadings) {
    // Αποθηκεύστε την αρχική μορφοποίηση
    boolean boldValue = builder.getFont().getBold();
    int paragraphAlignmentValue = builder.getParagraphFormat().getAlignment();

    // Ορισμός μορφοποίησης επικεφαλίδας
    builder.getFont().setBold(true);
    builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);

    // Εισαγάγετε ονόματα στηλών
    for (DataColumn column : dataTable.getColumns()) {
        builder.insertCell();
        builder.writeln(column.getColumnName());
    }

    builder.endRow();

    // Επαναφορά της αρχικής μορφοποίησης
    builder.getFont().setBold(boldValue);
    builder.getParagraphFormat().setAlignment(paragraphAlignmentValue);
}

Αυτό το μπλοκ κώδικα μορφοποιεί τη γραμμή επικεφαλίδας και εισάγει τα ονόματα των στηλών από τοDataTable.

Βήμα 3: Συμπληρώστε τον πίνακα με δεδομένα

Τώρα, περνάμε μέσα από κάθε σειρά τουDataTable για να εισαγάγετε δεδομένα στον πίνακα.

for (DataRow dataRow : (Iterable<DataRow>) dataTable.getRows()) {
    for (Object item : dataRow.getItemArray()) {
        builder.insertCell();
        switch (item.getClass().getName()) {
            case "DateTime":
                Date dateTime = (Date) item;
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMMM d, yyyy");
                builder.write(simpleDateFormat.format(dateTime));
                break;
            default:
                builder.write(item.toString());
                break;
        }
    }
    builder.endRow();
}

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

Βήμα 4: Τερματίστε τον πίνακα

Τέλος, τελειώνουμε τον πίνακα μόλις εισαχθούν όλα τα δεδομένα.

builder.endTable();

Αυτή η γραμμή σηματοδοτεί το τέλος του τραπεζιού μας, επιτρέποντας τοDocumentBuilder να ξέρουμε ότι τελειώσαμε με αυτό το τμήμα.

Σύναψη

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

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

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

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

Μπορώ να χρησιμοποιήσω το Aspose.Words δωρεάν;

Ναι, το Aspose προσφέρει μια δωρεάν δοκιμαστική έκδοση. Μπορείτε να το κατεβάσετε από εδώ .

Πώς μπορώ να κάνω στυλ σε πίνακες στο Aspose.Words;

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

Τι είδη δεδομένων μπορώ να εισάγω σε πίνακες;

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

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

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