Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Διάβασμα Αρχείου Excel

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3057

  • alzogo
  • Το Άβαταρ του/της alzogo
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 6
Καλημέρα/Καλησπέρα σε όλους και σε όλες.

Θα ήθελα να διαβάσω ένα αρχείο excel (όχι csv) από την python. Γνωρίζετε κάποιον τρόπο για να κάνω κάτι τέτοιο; Το όλο θέμα είναι ότι θέλω να διαβάσω συντεταγμένες (x,y,z) και στις συνέχεια να τις επεξεργαστώ κατάλληλα, και το αγκάθι μου είναι αυτό, το πως θα τις διαβάσω από το excel.

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

ΥΓ: Δεν με ενδιαφέρει αν η λύση βρίσκεται σε python2 ή 3, είμαι ευέλικτος σ αυτό, οποιαδήποτε λύση είναι επιθυμητή.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3059

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
alzogo έγραψε:
Καλημέρα/Καλησπέρα σε όλους και σε όλες.

Θα ήθελα να διαβάσω ένα αρχείο excel (όχι csv) από την python. Γνωρίζετε κάποιον τρόπο για να κάνω κάτι τέτοιο; Το όλο θέμα είναι ότι θέλω να διαβάσω συντεταγμένες (x,y,z) και στις συνέχεια να τις επεξεργαστώ κατάλληλα, και το αγκάθι μου είναι αυτό, το πως θα τις διαβάσω από το excel.

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

ΥΓ: Δεν με ενδιαφέρει αν η λύση βρίσκεται σε python2 ή 3, είμαι ευέλικτος σ αυτό, οποιαδήποτε λύση είναι επιθυμητή.

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

Ξέρεις πως να ανοίγεις αρχεία στην python και πως να διαβάζεις τα δεδομένα του αρχείου;

Δηλαδή κάτι σαν αυτό:
file = open("excelFileName.xlm", 'rb')
bytes= file.read()

Επίσης ξέρεις τη περιέχει ένα αρχείο excel μέσα του και πως ακριβώς λειτουργεί αυτό το αρχείο;
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3060

  • alzogo
  • Το Άβαταρ του/της alzogo
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 6
Ναι, ξέρω πως να διαβάσω από αρχείο, από κάποιο απλό txt για παράδειγμα.

Για το excell τώρα. Ξέρω επίσης την ακριβή δομή του αρχείου και είναι και πολύ απλό. Για να γίνω πιο συγκεκριμένος, ένα φύλλο και τρεις στήλες με αριθμούς (Χ, Υ, Ζ - συντεταγμένες), θέλω λοιπόν να διαβάζω αυτές τις συντεταγμένες, γραμμή - γραμμή, έτσι κάθε φορά θα παίρνω τις συντεταγμένες ενός σημείου ώστε να κάνω τις κατάλληλες ενέργειες.

Αν ήταν ένα αρχείο txt, κάθε γραμμή θα είχε τα x,y,z χωρισμένα με κόμμα. Θα διάβαζα λοιπόν, βάζοντας κάθε τέτοια γραμμή σε κάποιον πίνακα για παράδειγμα και θα έκανα τη δουλειά μου. Απλά θα ήθελα να κάνω αυτή τη δουλειά μέσω του excell γιατί εκεί έχω τις συντεταγμένες.

θα μου πεις, γιατί δεν το αποθηκεύεις σε csv για να κάνεις τη δουλειά σου; ε, όπως και να χει, δεν θα ήθελα να κάνω κάτι που ξέρω πως γίνεται ήδη, λέω μιας και έχω τη δυνατότητα να μάθω κάτι καινούριο για μένα πως γίνεται, γιατί να χάσω την ευκαιρία; :)
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3061

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
alzogo έγραψε:
Ναι, ξέρω πως να διαβάσω από αρχείο, από κάποιο απλό txt για παράδειγμα.

Για το excell τώρα. Ξέρω επίσης την ακριβή δομή του αρχείου και είναι και πολύ απλό. Για να γίνω πιο συγκεκριμένος, ένα φύλλο και τρεις στήλες με αριθμούς (Χ, Υ, Ζ - συντεταγμένες), θέλω λοιπόν να διαβάζω αυτές τις συντεταγμένες, γραμμή - γραμμή, έτσι κάθε φορά θα παίρνω τις συντεταγμένες ενός σημείου ώστε να κάνω τις κατάλληλες ενέργειες.

Αν ήταν ένα αρχείο txt, κάθε γραμμή θα είχε τα x,y,z χωρισμένα με κόμμα. Θα διάβαζα λοιπόν, βάζοντας κάθε τέτοια γραμμή σε κάποιον πίνακα για παράδειγμα και θα έκανα τη δουλειά μου. Απλά θα ήθελα να κάνω αυτή τη δουλειά μέσω του excell γιατί εκεί έχω τις συντεταγμένες.

θα μου πεις, γιατί δεν το αποθηκεύεις σε csv για να κάνεις τη δουλειά σου; ε, όπως και να χει, δεν θα ήθελα να κάνω κάτι που ξέρω πως γίνεται ήδη, λέω μιας και έχω τη δυνατότητα να μάθω κάτι καινούριο για μένα πως γίνεται, γιατί να χάσω την ευκαιρία; :)

Προς το παρόν επειδή δεν ξέρω πως είναι δομημένο ένα αρχείο excel, θα κάτσω να την μάθω
και να δω ποιο είναι ακριβώς το πρόβλημα που έχεις.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3062

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
Επειδή δεν έχω ιδέα από excel αρχεία, έψαξα και βρήκα αυτό το tutorial. Υπάρχει ένα έτοιμο
module για την python που σε βοηθάει να διαβάσεις δεδομένα από ένα αρχείο excel. Τσεκαρέ το
λογικά θα σε βοηθήσει πολύ. Τώρα άμα θες να το κάνεις εντελώς μόνος σου χωρίς την βοήθεια
ενός module τότε αυτό είναι άλλο θέμα :P

Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3063

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
alzogo έγραψε:
Ναι, ξέρω πως να διαβάσω από αρχείο, από κάποιο απλό txt για παράδειγμα.

Για το excell τώρα. Ξέρω επίσης την ακριβή δομή του αρχείου και είναι και πολύ απλό. Για να γίνω πιο συγκεκριμένος, ένα φύλλο και τρεις στήλες με αριθμούς (Χ, Υ, Ζ - συντεταγμένες), θέλω λοιπόν να διαβάζω αυτές τις συντεταγμένες, γραμμή - γραμμή, έτσι κάθε φορά θα παίρνω τις συντεταγμένες ενός σημείου ώστε να κάνω τις κατάλληλες ενέργειες.

Αν ήταν ένα αρχείο txt, κάθε γραμμή θα είχε τα x,y,z χωρισμένα με κόμμα. Θα διάβαζα λοιπόν, βάζοντας κάθε τέτοια γραμμή σε κάποιον πίνακα για παράδειγμα και θα έκανα τη δουλειά μου. Απλά θα ήθελα να κάνω αυτή τη δουλειά μέσω του excell γιατί εκεί έχω τις συντεταγμένες.

θα μου πεις, γιατί δεν το αποθηκεύεις σε csv για να κάνεις τη δουλειά σου; ε, όπως και να χει, δεν θα ήθελα να κάνω κάτι που ξέρω πως γίνεται ήδη, λέω μιας και έχω τη δυνατότητα να μάθω κάτι καινούριο για μένα πως γίνεται, γιατί να χάσω την ευκαιρία; :)

Αυτό που θέλεις να κάνεις είναι πάρα πολύ δύσκολο. Δεν εννοούσα με την δομή του αρχείου αυτό που βλέπεις μέσα στο πρόγραμμα του excel, αλλά αυτό που γράφετε στο αρχείο name.xls όταν πατάς το κουμπί αποθήκευση στο πρόγραμμα. Πρέπει να ξέρεις το format με το οποίο
γράφοντε όλα τα δεδομένα σε ένα αρχείο excle από το πρόγραμμα έτσι ώστε να μπορείς να
το επεξεργαστής σε μια γλώσσα προγραμματισμού. Για να μπορέσεις να το κάνεις αυτό πρέπει
να μάθεις το file format του excel. Η microsoft έχει βγάλει βιβλίο για το format ενώς
αρχείου excel και είναι αυτό εδώ

Πάντως το module που σε πρότεινα ποιο πάνω κάνει όλη αυτήν την δουλειά για εσένα, εσύ απλώς
πρέπει να πάθεις να χειρίζεσαι όλες τις λειτουργίες που έχει.
Τελευταία διόρθωση: 8 Χρόνια 8 Μήνες πριν από babaliaris1.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3064

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Υπάρχουν βιβλιοθήκες για να κάνεις αυτό ακριβώς που θέλεις.
www.python-excel.org/
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3065

  • alzogo
  • Το Άβαταρ του/της alzogo
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 6
Αρχικά, σας ευχαριστώ για τις προτάσεις.

babaliaris1, ναι κατάλαβα τι εννοείς τώρα περί της δομής, sorry δεν πήγε τόσο μακρυά το μυαλό μου :)

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

Ευχαριστώ και πάλι παιδιά! Θα τα λέμε..
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3068

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
alzogo έγραψε:
Αρχικά, σας ευχαριστώ για τις προτάσεις.

babaliaris1, ναι κατάλαβα τι εννοείς τώρα περί της δομής, sorry δεν πήγε τόσο μακρυά το μυαλό μου :)

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

Ευχαριστώ και πάλι παιδιά! Θα τα λέμε..

Χαχα τόση ώρα καθόμουν και ετοίμαζα ένα tutorial για να σε δώσω να καταλάβεις τη ακριβώς είναι
το format ενός αρχείου. :P Αφού το έκανα τώρα θα στο δείξω και ας έχεις καταλάβει :P

Πες ότι θέλεις να κάνεις ένα πρόγραμμα το οποίο να αποθηκεύει τρεις μεταβλητές σε ένα
αρχείο και επίσης να μπορείς να τις ανακτά από αυτό. Η μεταβλητές αυτές είναι name, birthday και town. Το file format που έκατσα και σκέφτηκα για να αποθηκεύω αυτές τις
μεταβλητές στο αρχείο είναι το εξής:
variable_name:value
(ανά γραμμή)(Επειδή δεν φαίνεται πολύ καλά, ανάμεσα
τους υπάρχει μια άνω-κάτω τελεία)

Αυτό σημαίνει ότι εάν έχω της μεταβλητές μου με κάποιες τιμές, πχ
name     = 'babaliaris'
birthday = '4/1/1996'
town     = 'Thessaloniki'

τότε όταν το πρόγραμμά μου θα κάνει την αποθηκεύσει το αρχείο θα είναι έτσι:
name:babaliaris
birthday:4/1/1996
town:Thessaloniki

Άρα το file format μου είναι ότι η μεταβλητή με την τιμή χωρίζεται με το σύμβολο :
(άνω-κάτω τελεία)
και στα αριστερά του βρίσκεται το όνομα της μεταβλητής ενώ στα δεξιά του η τιμή της
μεταβλητής. Τώρα γνωρίζοντας αυτήν τη δομή του αρχείου, όταν το αρχείο το ανοίξω στην
python θα μπορώ να ξεχωρίσω το όνομα των μεταβλητών και των τιμών τους και να τις
αποθηκεύσω στις κατάλληλες μεταβλητές μέσα στο πρόγραμμα μου. Αν δεν το γνώριζα πως θα
το έκανα αυτό; Για αυτόν τον λόγο πρέπει να ξέρεις το format ενός αρχείου για να μπορέσεις
να το επεξεργαστής σε κάποια γλώσσα προγραμματισμού.

Σου έχω κάνεις και το πρόγραμμα για να το τρέξεις και να δεις και πως δουλεύει:
# -*- coding: UTF-8 -*-
 
name     = ''
birthday = ''
town     = ''
 
print("1) Create account")
print("2) Load account\n")
 
choice = input("Choose: ")
 
#Δημιουργία και αποθήκευση νέου λογαριασμού.
if choice == '1':
 
    #Διάβασμα των δεδομένων από τον χρήστη#
    name = input('Give your name: ')
    birthday = input('Give your bithday: ')
    town = input('Give your town: ')
    #Διάβασμα των δεδομένων από τον χρήστη#
 
    #Εδώ αποθηκεύω τα δεδομένα σε ένα αρχείο με το format file
    #που σκέφτηκα να χρησιμοποιήσω.
    File = open('saves.txt', 'w') #Ανοιγμα ενός αρχείο για γράψιμο.
 
    File.write('name:'+name+'\n')         #Πρώτη γραμμή
    File.write('birthday:'+birthday+'\n') #Δεύτερη.
    File.write('town:'+town+'\n')         #Τρίτη.
    File.close() #Κλείσιμο αρχείου.
 
 
#Ανάκτηση λογαριασμού από αρχείο.
elif choice == '2':
 
    File = open('saves.txt', 'r') #Ανοιγμα ενός αρχείο για διάβασμα.
 
    #3 φορές γιατί αποθήκευσα 3 μεταβλητές.
    for i in range(0, 3):
        variable = ''
        value    = ''
 
        #Διβάζω μια γραμμή από το αρχείο και την μετατρέπω σε
        #λίστα χαρακτήρων.
        lineAsList = list( File.readline() )
 
        #Ανάκτηση της μεταβλητής.
        while 1:
 
            #Έλεγχος του διαχωριστικού συμβόλου.
            if lineAsList[0] != ':':
                variable += lineAsList[0] #Δημιουργώ την μεταβλητή.
                lineAsList.remove(lineAsList[0]) #Αφαιρώ αυτόν τον χαρακτήρα
                                                 #από την λίστα μου εφόσον
                                                 #τον χρησιμοποίησα ήδη.
 
            #Αφαιρώ το σύμβολο : από την λίστα μου και σπάω το loop.
            else:
                lineAsList.remove(lineAsList[0])
                break
 
 
        #Ανάκτηση της τιμής.
        for char in lineAsList:
 
            #Έλεγχος για τον χαρακτήρα new line(γιατί δεν θέλω να τον
            #συμπεριλάβω μέσα στην τιμή της μεταβλητής.)
            if char != '\n':
                value += char
 
            else:
                break
 
        #Εάν η μεταβλητή που ανέκτησα είναι η name τότε:
        if variable == 'name':
            name = value
 
        #Εάν η μεταβλητή που ανέκτησα είναι η birthday τότε:
        elif variable == 'birthday':
            birthday = value
 
        #Εάν η μεταβλητή που ανέκτησα είναι η town τότε:
        elif variable == 'town':
            town = value
 
    File.close()#Κλείσιμο αρχείου.
 
 
    #Εμφάνιση του λογαριασμού που ανέκτησα#
    print("=============Acount=============")
    print("Name = "+name)
    print("birthday = "+birthday)
    print("town = "+town)
    print("=============Acount=============")
    #Εμφάνιση του λογαριασμού που ανέκτησα#
 
 
 
 
 
#Δεν γνωρίζω αυτήν την επιλογή.
else:
    print("The program crashed because of uknown choice.")
 
Τελευταία διόρθωση: 8 Χρόνια 8 Μήνες πριν από babaliaris1.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3069

  • alzogo
  • Το Άβαταρ του/της alzogo
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 6
Μάλιστα.. ναι με έχεις βάλει πλήρως στο κλίμα.. Τώρα είναι που είμαι σίγουρος ότι θα χρησιμοποιήσω κάτι απ τα έτοιμα, γιατί αυτό ήταν ένα δείγμα φυσικά, φαντάσου τι θα γίνεται με το excel, που δε θέλει και πολύ φαντασία, αυτό το βιβλίο που μου έστειλες το έριξα μια ματιά και βλέπω τι χαμός γίνεται.

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

Το εκτιμώ!
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3072

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
στο μέλλον όταν θα έχω κάποιο παραπάνω χρόνο ίσως διαβάσω και το βιβλίο για το format του excel.
Εκτός και αν κάποια συγκεκριμένη δουλειά σε υποχρεώσει να μπεις τόσο βαθιά, μην ασχοληθείς. Υπάρχουν πολύ πιο χρήσιμες εγκυκλοπαιδικές γνώσεις...
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3075

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Έχω δοκιμάσει το xldr και φαίνεται αξιόπιστο.
Αν θέλεις να παιδευτείς, βρες τη δομή ενός xls αρχείου και δοκίμασε να κάνεις τα μαγικά σου.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Διάβασμα Αρχείου Excel 8 Χρόνια 8 Μήνες πριν #3078

  • alzogo
  • Το Άβαταρ του/της alzogo
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 6
Τελικά βλέπω ότι με το xlrd μια χαρά βγαίνει.. λίγο μόνο αν δεν το έχεις δουλέψει ποτέ στο παρελθόν, διαβάζεις γι αυτό, υπάρχουν άπειρα βοηθήματα σε κάθε γωνιά του internet και η δουλειά βγαίνει όπως και να χει..

απλά επιβεβαιώνω για κάποιον φίλο που θα χρειαστεί κάτι παρόμοιο, να το έχει υπ όψιν σαν πιθανή λύση...
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.339 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου