Προς το περιεχόμενο

Πως διαβαζω αρχειο xls με java???


mix@lis

Προτεινόμενες αναρτήσεις

παιδια καλησπερα...!!!

Εχω μια εργασια στην Java και ενα απο τα ζητουμενα ειναι να διαβασω ενα συγκεκριμενο αρχειο xls!! :-? ξερω βεβαια πως να διαβαζω αρχεια και να τυπωνω στην οθονη(στο cmd) το περιεχομενο του αρχειου αλλα μονο για αρχεια txt.με xls πως θα το κανω???δηλαδη πως θα διαβαζω τα περιεχομενα που εχουν τα κελια???για την ακριβεια εχω 7 στηλες και καμια 30 γραμμες!!!χρειαζομια καποιες συγκεκριμενες κλασεις η μεθοδους?help!!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

εμενα μου ζήτησαν σε δουλειά να δημιουργώ excel, αλλα με πολλους περιορισμους: λειτουργικό unix, αρα δεν μπορουσα να χρησιμοποιήσω τιποτα απο microsoft, και δεν ηθελαν php, και perl δεν ξέρω, αρα έμενε η java και αυτή μισή (jdk 1.1.8 και 1.2 !!! κλαψ :( ). με διάβασμα excel δεν ασχολήθηκα, μαλλον ειναι λιγο πιό μπλέξιμο, αλλα θελει τα ίδια APIs.

 

δωρεάν: Jakarta POI

http://jakarta.apache.org/poi/index.html

 

και jexcelapi

http://www.andykhan.com/jexcelapi/

http://www.andykhan.com/jexcelapi/tutorial.html

 

για να βρεις κι άλλα δωσε στο google : create excel java

τα περισσότερα αποτελεσματα αφορούν το POI γιατι ειναι το πιό στανταρ, πρόσθεσε -POI για να δεις τους υπόλοιπους, και tutorial μηπως βρεις παραδείγματα κώδικα.

 

 

επισης εχω δει αυτο officewriter http://officewriter.softartisans.com/ ειναι commercial και υπόσχεται αρκετά προχωρημένα πράγματα -δεν νομιζω να το χρειαστείς-, αλλα οταν κατι δεν δουλευε σωστά στο demo τους, και στειλαμε mail, δεν μας απάντησαν.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα πρέπει να βρεις το documentation του XLS file format (εγώ το είχα βρει από εδώ http:// http://www.wotsit.org/) το οποίο διαφοροποιείται αν θυμάμαι καλά από την έκδοση του Excel ʼ97 (v.7.0) και γίνεται πιο περίπλοκο.

 

Πάντως είχα ασχοληθεί πέρσι με το θέμα τις σχεδίασης μιας class που έκανε export στοιχεία (όχι import όμως) σε XLS ως την έκδοση 6.0 (προ του Office ʼ97). Ουσιαστικά αυτή η μορφή αρχείων (στην ορολογία λέγονται BIFF, Binary Interchange File Format -μην μπερδεύεσαι από το IFF μέλος) προέρχεται από το θρυλικό Lotus 1-2-3 και ομοιάζει σε πολλά σημεία μαζί του. Είναι απλοϊκή και βασίζεται σε binary chucks τα οποία πρέπει να διαβάσεις από το XLS αρχείο (ύστερα από την επεξεργασία των ανάλογων Headers). Το μέγεθος τους είναι μεταβλητό (αν και πάντα ξεκινά αν θυμάμαι καλά με 4 bytes ή αν θες δυο WORDS) και εξαρτάται από το τι επιτελούν (εδώ βοηθά το πρώτο byte τους ή chuck ID στην ορολογία που χρησιμοποίησα τότε).

 

Για να καταλάβεις την δομή, δημοσιεύω την μορφή του XLS chuck με κωδικό 04 το οποίο ορίζει κείμενο στα κελιά της εφαρμογής (είναι snap από το ελλιπή :\ source comment της C++ class μου) για το Excel 2 > και πρέπει να θεωρηθεί ενδεικτική ώστε να σε βάλει στο πνεύμα των δομών του:

 

>                      
     |===========|===========|========|=============|
     |04 00|LL 00|RW RW|CL CL|RR|GG|BB|SL|String[..]|
     |===========|===========|========|=============|
                  00 01 02 03 04 05 06 07 08....
                  ^-----------+
     LL = Συνολικό μέγεθος του|BIFF DATA τμήματος (μόνο!)
     RW = RoW WRD RR = R               SL = Συνολικό μέγεθος του String
     CW = CoL WRD GG = G } 3 Bytes (χρώμα σε μορφή RGB ή Alignment)
                  BB = B

 

Αν τώρα βρεις κάποιο έτοιμο XLS parser class για την Java ακόμα καλύτερα διαφορετικά μια Binary αντιμετώπιση δεν κρίνεται ανέφικτη ειδικά για τα παλιά XLS (απλά πρέπει να διαβάσεις Binary) διαφορετικά εάν ο Καθηγητής σου θέλει σώνει και καλά Excel ʼ97 > (ευτυχώς όλα τα Excel υποστηρίζουν και τα παλαιότερα BIFF formats) βάλ' τον να σου διαβάσει τις δομές του ʼ97 (Ole chucks κ.α.) και να αναπτύξει μόνος του το αντίστοιχο λογισμικό –όχι με έτοιμα class αλλά με το χέρι- και αν τα καταφέρει στο χρόνο που πάω στοίχημα πως σας έδωσε, τα λέμε ;)

 

Δεν έχω να προσθέσω κάτι πέρα από αυτά,

Καλή συνέχεια!

:)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το να αποθηκεύσεις το .xls σε .csv (comma seperated values) που είναι απλό κειμενάκι δεν επιτρέπεται; Χάνεις βέβαια τη μορφοποίηση, πιθανώς όμως να σε ενδιαφέρουν μόνο οι τιμές/τύποι...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το πιο εύκολο είναι με τις libs της jakarta που σου δίνουν έτοιμες classes για να διαβάζεις και να γραφείς σε excel format.

Επίσης μπορείς να χρησιμοποιήσεις το JDBC api και τον κατάλληλο driver ώστε να διαβάζεις-γραφείς όπως σε μια βάση δεδομένων με sql εντολές.

 

LINKS:

http://www.javaworld.com/javaworld/javaqa/2001-08/02-qa-0824-excel2.html

http://jakarta.apache.org/poi/

http://java-source.net/open-source/database-engines/excel-jdbc-driver

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

gia anoi3e to sygkekrimeno xls me notepad mpas kai einai aplws kana txt me csv gia excel, an nai para poly apla ginete opws ta txt, kata ta alla genika otidhpote jav<->ms gia na synergastoun sou bgazoun to ladi, pantws akoma kai se visual c# ,ektos apo to office iteroop, gia na kaneis tetoia douleia einai 8eotrellh manoura.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

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

  • Δημιουργία νέου...