Η κοινότητα ανοιχτού κώδικα έχει δημιουργήσει πολλά έργα ανοιχτού κώδικα Java, τα οποία κυμαίνονται από λογισμικό χαρτογράφησης έως πλαίσια παιχνιδιών έως επεξεργαστές κειμένου. Σε αυτήν την ανάρτηση, παρουσιάζω ένα έργο βιβλιοθήκης ανοιχτού κώδικα για ανάγνωση και συγγραφή υπολογιστικών φύλλων του Microsoft Excel.
Προτείνεται μια βιβλιοθήκη υπολογιστικών φύλλων
Ε: Μου ζητήθηκε να επεκτείνω το λογισμικό υπολογιστικών φύλλων που βασίζεται σε Java για να διαβάζω και να γράφω υπολογιστικά φύλλα Excel. Μπορείτε να συστήσετε μια βιβλιοθήκη Java ανοιχτού κώδικα που θα με βοηθήσει σε αυτήν την εργασία;
ΕΝΑ: Ίσως θελήσετε να δείτε το JExcelAPI, το οποίο είναι μια ώριμη βιβλιοθήκη ανοιχτού κώδικα που βασίζεται σε Java και σας επιτρέπει να διαβάζετε, να γράφετε και να τροποποιείτε υπολογιστικά φύλλα του Excel. Εδώ είναι μερικά από τα πολλά χαρακτηριστικά του:
- Διαβάζει δεδομένα από βιβλία εργασίας Excel 95, 97, 2000, XP και 2003
- Διαβάζει και γράφει τύπους (Excel 97 και νεότερες εκδόσεις)
- Δημιουργεί υπολογιστικά φύλλα σε μορφή Excel 2000
- Υποστηρίζει μορφοποίηση γραμματοσειράς, αριθμού και ημερομηνίας
- Υποστηρίζει τη σκίαση των κυττάρων, τα όρια των κυττάρων και τον χρωματισμό των κυττάρων
- Τροποποιεί τα υπάρχοντα φύλλα εργασίας
- Υποστηρίζει την αντιγραφή γραφημάτων
- Υποστηρίζει την εισαγωγή και αντιγραφή εικόνων σε υπολογιστικά φύλλα
Το JExcelAPI αναπτύχθηκε από τον Andrew Kahn και κυκλοφόρησε με την άδεια GNU Lesser General Public.
Λήψη της βιβλιοθήκης JExcelAPI
Ε: Πώς μπορώ να κατεβάσω το JExcelAPI;
ΕΝΑ: Ολοκληρώστε τα παρακάτω βήματα για να κάνετε λήψη του JExcelAPI:
- Στρέψτε το πρόγραμμα περιήγησής σας στον ιστότοπο SourceForge του JExcelAPI.
- Κάντε κλικ στο
jexcelapi
Σύνδεσμος. - Στη σελίδα που προκύπτει, κάντε κλικ σε έναν από τους συνδέσμους φακέλων. Για παράδειγμα, έκανα κλικ στο
2.6.12
Σύνδεσμος. - Στη σελίδα που προκύπτει, κάντε κλικ στο όνομα αρχείου του αρχείου διανομής. Για παράδειγμα, έκανα κλικ στο
jexcelapi_2_6_12.zip
Σύνδεσμος. - Μετά από μια μικρή καθυστέρηση, το πρόγραμμα περιήγησής σας θα σας ζητήσει να αποθηκεύσετε αυτό το αρχείο. Προχωρήστε και αποθηκεύστε το αρχείο.
Μετά τη λήψη, καταργήστε την αρχειοθέτηση αυτού του αρχείου. Πρέπει να παρατηρήσετε ένα jexcelapi
αρχικός κατάλογος εντός α jexcelapi_2_6_12
Ευρετήριο.
Επίδειξη της βιβλιοθήκης JExcelAPI
Ε: Η βιβλιοθήκη JExcelAPI περιέχει επιδείξεις;
ΕΝΑ: JExcelAPI's jexcelapi
Ο αρχικός κατάλογος περιέχει ένα jxl.jar
αρχείο που περιέχει επιδείξεις για ανάγνωση, συγγραφή και αντιγραφή υπολογιστικών φύλλων.
Το demo ανάγνωσης διαβάζει ένα υπάρχον υπολογιστικό φύλλο, μετατρέποντάς το σε τιμή διαχωρισμένη με κόμμα (CSV) ή μορφή XML μέσω του -csv
ή -xml
επιλογή γραμμής εντολών. Εξετάστε τα ακόλουθα παραδείγματα:
java -jar jxl.jar -csv budget.xls java -jar jxl.jar -xml budget.xls
Αυτά τα παραδείγματα διαβάζονται budget.xls
και εξάγει τα περιεχόμενά του σε μορφή CSV και XML σε τυπική έξοδο. Όταν κανένα -csv
ούτε -xml
καθορίζεται, -csv
υποτίθεται.
Το demo εγγραφής δημιουργεί ένα δείγμα υπολογιστικού φύλλου που περιλαμβάνει τύπους, περιγράμματα, εικόνες και πολλά άλλα. Αυτό το υπολογιστικό φύλλο δημιουργείται καθορίζοντας το -γράφω
επιλογή γραμμής εντολών, όπως φαίνεται παρακάτω:
java -jar jxl.jar -write sample.xls
Το σχήμα 1 δείχνει μέρος του προκύπτοντος sample.xls
υπολογιστικό φύλλο.
Σχήμα 1. Χρησιμοποίησα το LibreOffice Calc για πρόσβαση στο υπολογιστικό φύλλο sample.xls
Η επίδειξη αντιγραφής αντιγράφει υπολογιστικό φύλλο δείγματος jxlrwtest.xls
, ο οποίος αποθηκεύεται στον ίδιο κατάλογο με jxl.jar
, σε ένα νέο υπολογιστικό φύλλο. Στο προκύπτον υπολογιστικό φύλλο, το πρώτο φύλλο (πρωτότυπο) είναι αμετάβλητο ενώ το δεύτερο φύλλο (τροποποιημένο) περιέχει τροποποιημένες τιμές.
Αυτό το demo δημιουργείται καθορίζοντας το -rw
επιλογή γραμμής εντολών ακολουθούμενη από jxlrwtest.xls
και το όνομα του υπολογιστικού φύλλου εξόδου. Εξετάστε την ακόλουθη γραμμή εντολών:
java -jar jxl.jar -rw jxlrwtest.xls copy.xls
Αυτή η γραμμή εντολών αντιγράφει jxlrwtest.xls
προς την copy.xls
. Το σχήμα 2 δείχνει το δεύτερο (τροποποιημένο) φύλλο στο LibreOffice Calc.
Εικόνα 2. Κάντε κλικ στις αρχικές και τροποποιημένες καρτέλες για να δείτε τα πρωτότυπα και τροποποιημένα φύλλα
Συμπεριλαμβάνεται το JExcelAPI για συλλογή και εκτέλεση
Ε: Πώς μπορώ να συμπεριλάβω το JExcelAPI κατά τη σύνταξη του πηγαίου κώδικα και την εκτέλεση μιας εφαρμογής;
ΕΝΑ: Για να συμπεριλάβετε το JExcelAPI κατά τη σύνταξη του πηγαίου κώδικα και την εκτέλεση μιας εφαρμογής, κάντε ένα από τα εξής:
- Πρόσθεσε το
jexcelapi
αρχικός κατάλογοςjxl.jar
αρχείο στο δικό σαςCLASSPATH
μεταβλητή περιβάλλοντος. - Περιλαμβάνω
jxl.jar
μέσω τουjavac
καιΙάβα
του προγράμματος-cp
επιλογή γραμμής εντολών.
Προγραμματισμός με το JExcelAPI
Ε: Πώς μπορώ να δημιουργήσω προγράμματα Java που χρησιμοποιούν το JExcelAPI;
ΕΝΑ: ο jexcelapi
Ο αρχικός κατάλογος περιλαμβάνει ένα tutorial.html
αρχείο που παρουσιάζει έναν βασικό οδηγό προγραμματισμού με το JExcelAPI. Το σεμινάριο σάς δείχνει πώς να διαβάσετε, να γράψετε και να αντιγράψετε υπολογιστικά φύλλα. Το σεμινάριο συζητά επίσης τη μορφοποίηση.
jexcelapi
περιλαμβάνει επίσης ένα έγγραφα
υποκατάλογος, ο οποίος παρέχει πρόσβαση σε εκτεταμένη τεκμηρίωση API. Στρέψτε το πρόγραμμα περιήγησης στο Web σε αυτόν τον κατάλογο index.html
αρχείο και μπορείτε να εξερευνήσετε τους τύπους στα τέσσερα τεκμηριωμένα πακέτα αυτής της βιβλιοθήκης:
jxl
: οι τύποι του κύριου πακέτουjxl.demo
: τύποι για τις διάφορες επιδείξειςjxl.format
: τύποι που σχετίζονται με τη μορφοποίησηjxl.write
: τύποι γραφής σε υπολογιστικό φύλλο
Λάβετε υπόψη ότι αυτή η λίστα δεν είναι πλήρης. Πρόσθετα πακέτα όπως jxl.read
είναι παρόντα αλλά δεν είναι τεκμηριωμένα. Για να μάθετε περισσότερα για πακέτα, εκτελέστε βάζο tvf jxl.jar
και εξετάστε τις πληροφορίες του πακέτου στην προκύπτουσα λίστα JAR.
Για να σας βοηθήσω να ξεκινήσετε με το JExcelAPI, έχω δημιουργήσει ένα απλό JExcelAPIDemo
εφαρμογή που δείχνει τη δημιουργία ενός νέου υπολογιστικού φύλλου στο οποίο είναι αποθηκευμένο έξοδος.xls
και μετά διαβάζοντας και εξάγοντας τα περιεχόμενα αυτού του υπολογιστικού φύλλου. Δείτε την Καταχώριση 1.
Λίστα 1. Γράφοντας και διαβάζοντας ένα απλό υπολογιστικό φύλλο
εισαγωγή java.io.File; εισαγωγή java.io.IOException; εισαγωγή jxl.Cell; εισαγωγή jxl.Sheet; εισαγωγή jxl.Workbook; εισαγωγή jxl.read.biff.BiffException; εισαγωγή jxl.write.Label; εισαγωγή jxl.write.Number; εισαγωγή jxl.write.WritableSheet; εισαγωγή jxl.write.WritableWorkbook; εισαγωγή jxl.write.WriteException; δημόσια τάξη JExcelAPIDemo {public static void main (String [] args) ρίχνει BiffException, IOException, WriteException {WritableWorkbook wworkbook; wworkbook = Workbook.createWorkbook (νέο αρχείο ("output.xls")); WritableSheet wsheet = wworkbook.createSheet ("Πρώτο φύλλο", 0); Ετικέτα ετικέτας = νέα Ετικέτα (0, 2, "A label record"); wsheet.addCell (ετικέτα); Αριθμός αριθμού = νέος αριθμός (3, 4, 3.1459); wsheet.addCell (αριθμός); wworkbook.write (); wworkbook.close (); Workbook workbook = Workbook.getWorkbook (νέο αρχείο ("output.xls")); Φύλλο φύλλου = workbook.getSheet (0); Cell cell1 = sheet.getCell (0, 2); System.out.println (cell1.getContents ()); Cell cell2 = sheet.getCell (3, 4); System.out.println (cell2.getContents ()); workbook.close (); }}
Η καταχώριση 1 δημιουργεί πρώτα ένα εγγράψιμο βιβλίο εργασίας, επικαλούμενος ένα από αυτά ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΙΩΝ
εργοστασιακές μεθόδους. Στη συνέχεια δημιουργείται ένα εγγράψιμο φύλλο για αυτό το βιβλίο εργασίας και στη συνέχεια προστίθενται μια ετικέτα και ένας αριθμός ως οι τιμές των δύο κελιών του φύλλου. Στη συνέχεια, το βιβλίο εργασίας γράφεται και κλείνει.
Η καταχώριση 1 συνεχίζεται με τη σύνδεση ενός βιβλίου εργασίας έξοδος.xls
και διαβάζοντας το περιεχόμενό του. ο getSheet ()
Η μέθοδος παρέχει πρόσβαση στο πρώτο φύλλο αυτού του βιβλίου εργασίας. Του getCell ()
καλείται μέθοδος για πρόσβαση στα δύο κελιά, τα περιεχόμενα των οποίων στη συνέχεια εξάγονται.
Υποθέτοντας ότι jxl.jar
βρίσκεται στον τρέχοντα κατάλογο, εκτελέστε την ακόλουθη εντολή για να μεταγλωττίσετε την Καταχώριση 1:
javac -cp jxl.jar JExcelAPIDemo.java
Υποθέτοντας την επιτυχία, εκτελέστε την ακόλουθη εντολή για εκτέλεση JExcelAPIDemo
:
java -cp jxl.jar ;. JExcelAPIDemo
Πρέπει να παρατηρήσετε την ακόλουθη έξοδο:
Μια εγγραφή ετικέτας 3.146
Το σχήμα 3 σας δείχνει έξοδος.xls
σε ένα πλαίσιο LibreOffice.
Σχήμα 3. Το μοναχικό φύλλο εμφανίζει δύο τιμές κυψέλης
Τι έπεται?
Την επόμενη φορά, θα παρουσιάσω ένα σύνολο παζλ που αντιμετωπίζουν την εξέλιξη των βιβλιοθηκών Java. Αυτά τα παζλ εστιάζουν στην συμβατότητα πηγής και δυαδικού κώδικα μεταξύ προγραμμάτων πελατών και βιβλιοθηκών που χρησιμοποιούν αυτά τα προγράμματα.
λήψη Λήψη της πηγής Λήψη του πηγαίου κώδικα για τις εφαρμογές αυτής της ανάρτησης. Δημιουργήθηκε από τον Jeff Friesen για το JavaWorldΤο ακόλουθο λογισμικό χρησιμοποιήθηκε για την ανάπτυξη του κώδικα της ανάρτησης:
- 64-bit JDK 7u6
- JExcelAPI 2.6.12
Ο κώδικας της ανάρτησης δοκιμάστηκε στις ακόλουθες πλατφόρμες:
- JVM σε Windows 7 SP1 64-bit
Αυτή η ιστορία, "Ανάγνωση και σύνταξη υπολογιστικών φύλλων Excel" δημοσιεύθηκε αρχικά από το JavaWorld.