militarist Δημοσ. 10 Φεβρουαρίου 2016 Δημοσ. 10 Φεβρουαρίου 2016 Έχω φτιάξει ένα app που πέρνει μία τιμή απο ένα excel και το κανει paste σε ένα αλλο online tool. Με το παρακατω πέρνω την τιμή: workbook = Workbook.getWorkbook(App.file); Sheet sheet = workbook.getSheet(1); Cell cell1 = sheet.getCell(4, 27); System.out.println(cell1.getContents() ); Με το παρακάτω κάνω paste: psess.GetPS().SendKeys((cell1).getContents(), 8, 18); Μερικες φορές η τιμή ειναι με δεκαδικά. Επειδή δεν μπορώ να επέμβω στο excel, πώς μπορώ να κάνω το tool να αγνοήση τα δεκαδικά? Ελπίζω να είμαι κατανοητός , αν όχι συγνώμη είμαι καινούργιος στον κόσμο του Java.
Moderators Kercyn Δημοσ. 10 Φεβρουαρίου 2016 Moderators Δημοσ. 10 Φεβρουαρίου 2016 Μπορείς να αποθηκεύσεις την τιμή που θες σε Integer. Υπάρχουν επίσης και floor/ceiling μέθοδοι αν θες στρογγυλοποιήσεις. 2
militarist Δημοσ. 10 Φεβρουαρίου 2016 Μέλος Δημοσ. 10 Φεβρουαρίου 2016 Άν θα ήθελα να τα αγνοησω τελείως? πχ: το 2.3 να το κανο 2 ? Κάτι βρήκα για round? Άλλα δεν ξέρω πώς να το κάνω.
Moderators Kercyn Δημοσ. 10 Φεβρουαρίου 2016 Moderators Δημοσ. 10 Φεβρουαρίου 2016 Μα αυτό σου λέω, αν αποθηκεύσεις την τιμή που διαβάζεις σε Integer δε θα έχεις δεκαδικά.
militarist Δημοσ. 10 Φεβρουαρίου 2016 Μέλος Δημοσ. 10 Φεβρουαρίου 2016 Μα αυτό σου λέω, αν αποθηκεύσεις την τιμή που διαβάζεις σε Integer δε θα έχεις δεκαδικά. Συγνώμη επειδή αυτό δεν ξέρω να το κάνω μήπως μπορείσ να μου δώσεις κάποιο tutorial? Έψαξα στο google άλλα χάθηκα είναι η αλήθεια......
Moderators Kercyn Δημοσ. 10 Φεβρουαρίου 2016 Moderators Δημοσ. 10 Φεβρουαρίου 2016 Όπως βλέπω εδώ η getContents σου επιστρέφει string. Αντί να κάνεις print κατ' ευθείαν τα contents του κελιού, μπορείς να κάνεις κάτι τέτοιο: int CellValue = Integer.parseInt(cell1.getContents()); Έτσι θα αποθηκεύσεις το ακέραιο μέρος στο CellValue για να το χρησιμοποιήσεις μετά όπως θες. http://www.tutorialspoint.com/java/number_parseint.htm
M2000 Δημοσ. 10 Φεβρουαρίου 2016 Δημοσ. 10 Φεβρουαρίου 2016 είναι αδύνατον να μην υπάρχει Int( ) συνάρτηση http://www.techonthenet.com/excel/formulas/int.php To cStr() το κάνει αλφαριθμητικό, το Val( ) σε νούμερο cStr(Int(Val( ) ) )
Moderators Kercyn Δημοσ. 10 Φεβρουαρίου 2016 Moderators Δημοσ. 10 Φεβρουαρίου 2016 Αφού λέει ότι δε μπορεί να πειράξει το excel...
militarist Δημοσ. 10 Φεβρουαρίου 2016 Μέλος Δημοσ. 10 Φεβρουαρίου 2016 Δυστιχος το excel μου έρχεται κλειδωμένο.
M2000 Δημοσ. 10 Φεβρουαρίου 2016 Δημοσ. 10 Φεβρουαρίου 2016 Οκ, δεν είδα ότι ήταν java... Έριξα μια ματιά. Αν χρησιμοποιήσει το Parse μπορεί να φάει exception (το οποίο μπορεί να μην επιθυμεί), αλλά δείτε εδώ. Κάποιος δίνει κώδικα για μετατροπή str σε int. http://stackoverflow.com/questions/5585779/converting-string-to-int-in-java public static int strToInt( String str ){ int i = 0; int num = 0; boolean isNeg = false; //Check for negative sign; if it's there, set the isNeg flag if (str.charAt(0) == '-') { isNeg = true; i = 1; } //Process each character of the string; while( i < str.length()) { num *= 10; num += str.charAt(i++) - '0'; //Minus the ASCII code of '0' to get the value of the charAt(i++). } if (isNeg) num = -num; return num; }
warlock9_0 Δημοσ. 10 Φεβρουαρίου 2016 Δημοσ. 10 Φεβρουαρίου 2016 αυτό δεν τρώει exception δηλαδή δεν χρειάζεται να ανακαλύψει τον τροχό ξανά, γι αυτόν το λόγο υπάρχει η parseInt
Moderators Kercyn Δημοσ. 10 Φεβρουαρίου 2016 Moderators Δημοσ. 10 Φεβρουαρίου 2016 https://docs.oracle.com/javase/7/docs/api/java/lang/String.html "A String represents a string in the UTF-16 format" Ο κώδικας που έβαλες δουλεύει με ASCII. Δεν ξέρω (και για να είμαι ειλικρινής δε με νοιάζει κιόλας) αν έτσι θα δουλεύει, αλλά για ποιο λόγο να φτιάξει δική του συνάρτηση γι' αυτό;
militarist Δημοσ. 10 Φεβρουαρίου 2016 Μέλος Δημοσ. 10 Φεβρουαρίου 2016 Ευχαριστώ όλους για τις απαντήσεις, αυριο θα δοκιμάσω και θα σας πώ.
M2000 Δημοσ. 11 Φεβρουαρίου 2016 Δημοσ. 11 Φεβρουαρίου 2016 Kercyn σε όλα τα συστήματα το ίδιο νούμερο έχει το μηδέν το 48! Το comment στη γραμμή που λέει για ASCII είναι βλακεία! Το παραβλέπουμε!
militarist Δημοσ. 12 Φεβρουαρίου 2016 Μέλος Δημοσ. 12 Φεβρουαρίου 2016 (επεξεργασμένο) Τελικά έλυσα το πρόβλημα με το παρακάτω: Cell cell4 = sheet.getCell(3, 7); String number3 = cell4.getContents().split("\\.")[0].replaceAll("\\,",""); System.out.println(number3); Cell cell5 = sheet.getCell(3, 7); String number3 = cell5.getContents().split("\\.")[0].replaceAll("\\,",""); System.out.println(number4); Επεξ/σία 12 Φεβρουαρίου 2016 από militarist
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα