Moderators Spect~ Δημοσ. 16 Μαΐου 2022 Moderators Share Δημοσ. 16 Μαΐου 2022 Επανέρχομαι με ενα νέο πρόβλημα! Θέλω να φτιάξω ενα αρχείο google sheets ή excel, για να κρατάω ενα ιστορικό με κάποιες κινήσεις οι οποιες θα γίνονται import απο ενα csv αρχειο. Το αρχειο καθε φορά θα περιέχει νεες εγγραφές αλλα εγω θελω να γίνονται import μόνο οι νέες, δηλαδη αυτες που δεν θα υπάρχουν στο εξελ μου. Πως θα γινει στο import να κραταω μονο τις νεες; Καθε γραμμη εχει ενα unique ID που μπορει να χρησιμοποιηθει. ΥΓ: βγαινει μονο σε csv το εξπορτ και δεν μπορω να το αλλαξω αυτο Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
masteripper Δημοσ. 16 Μαΐου 2022 Share Δημοσ. 16 Μαΐου 2022 (επεξεργασμένο) INSERT INTO.... WHERE ID NOT IN (SELECT ID FROM ExistingRecords) Επεξ/σία 16 Μαΐου 2022 από masteripper Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Moderators Spect~ Δημοσ. 16 Μαΐου 2022 Μέλος Moderators Share Δημοσ. 16 Μαΐου 2022 5 λεπτά πριν, masteripper είπε INSERT INTO.... WHERE ID NOT IN (SELECT ID FROM ExistingRecords) Σε εξελ ειναι αυτο; που θα το βρω; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
archer100 Δημοσ. 16 Μαΐου 2022 Share Δημοσ. 16 Μαΐου 2022 Μια απλη λυση θα ηταν να κανεις import ολο το αρχειο και μετα να κανεις remove duplicates σε ολες τις στηλες εκτος απο το ID Απλα σε περιπτωση που ειναι σημαντικο να κρατησεις την υφισταμενη ID και οχι την καινουργια, πρεπει να προσεξεις πως θα ειναι σορταρισμενο το αρχειο πριν το remove duplicates Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Moderators Spect~ Δημοσ. 16 Μαΐου 2022 Μέλος Moderators Share Δημοσ. 16 Μαΐου 2022 5 λεπτά πριν, archer100 είπε Μια απλη λυση θα ηταν να κανεις import ολο το αρχειο και μετα να κανεις remove duplicates σε ολες τις στηλες εκτος απο το ID Απλα σε περιπτωση που ειναι σημαντικο να κρατησεις την υφισταμενη ID και οχι την καινουργια, πρεπει να προσεξεις πως θα ειναι σορταρισμενο το αρχειο πριν το remove duplicates Πρεπει να κραταω το υπαρχων γιατι θα προσθεετω μια δυο στειλες εγω. Το θεμα ειναι να μην χρειαζεται να το κανω καθε φορα χειροκινητα. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
archer100 Δημοσ. 16 Μαΐου 2022 Share Δημοσ. 16 Μαΐου 2022 Μπορει να γινει πολυ ευκολα με Python Απλα θελει πρεπει να ξερεις πως να τρεξεις το αρχειο και φυσικα να γραφτει ο σχετικος κωδικας (οχι τιποτα ιδιαιτερο, καμια 10-15 γραμμες) Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Moderators Spect~ Δημοσ. 16 Μαΐου 2022 Μέλος Moderators Share Δημοσ. 16 Μαΐου 2022 3 λεπτά πριν, archer100 είπε Μπορει να γινει πολυ ευκολα με Python Απλα θελει πρεπει να ξερεις πως να τρεξεις το αρχειο και φυσικα να γραφτει ο σχετικος κωδικας (οχι τιποτα ιδιαιτερο, καμια 10-15 γραμμες) Να το κανω σε python για να βρισκει τις νεες εγγραφες και να κανει import μονο τις νεες; ετσι θα μπορουσα να το βαλω να κατεβαζει και το αρχειο μονο του (αν γινεται) Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
archer100 Δημοσ. 16 Μαΐου 2022 Share Δημοσ. 16 Μαΐου 2022 1 λεπτό πριν, Spect~ είπε Να το κανω σε python για να βρισκει τις νεες εγγραφες και να κανει import μονο τις νεες; ετσι θα μπορουσα να το βαλω να κατεβαζει και το αρχειο μονο του (αν γινεται) Ακριβως, θα εισαγει μονο τις νεες. Και φυσικα μπορει να κατεβασει το αρχειο αυτοματα απο καποιο σαιτ με λιγο κωδικα ακομα 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Moderators Spect~ Δημοσ. 16 Μαΐου 2022 Μέλος Moderators Share Δημοσ. 16 Μαΐου 2022 1 λεπτό πριν, archer100 είπε Ακριβως, θα εισαγει μονο τις νεες. Και φυσικα μπορει να κατεβασει το αρχειο αυτοματα απο καποιο σαιτ με λιγο κωδικα ακομα Ναι προγραμματιστικα φυσικα και γινεται αλλα αναφέρομαι στο κομματι της συνδέσεις στη σελιδα ή αν πχ το λινκ ειναι καθε φορα το ιδιο κλπ. Απο την αλλη γιατι να μην γινει απευθειας σε VBA? Εκτος απο τις δυνατότητες και ευκολιες που σου δινει η python το να εχεις απλα ενα αρχειο και να το τρεχεις απο εκει Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
archer100 Δημοσ. 16 Μαΐου 2022 Share Δημοσ. 16 Μαΐου 2022 1 λεπτό πριν, Spect~ είπε Ναι προγραμματιστικα φυσικα και γινεται αλλα αναφέρομαι στο κομματι της συνδέσεις στη σελιδα ή αν πχ το λινκ ειναι καθε φορα το ιδιο κλπ. Απο την αλλη γιατι να μην γινει απευθειας σε VBA? Εκτος απο τις δυνατότητες και ευκολιες που σου δινει η python το να εχεις απλα ενα αρχειο και να το τρεχεις απο εκει Φυσικα μπορει να γινει και σε VBA Απλα δεν γνωριζω προσωπικα VBA για να γνωμοδοτησω 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
masteripper Δημοσ. 16 Μαΐου 2022 Share Δημοσ. 16 Μαΐου 2022 Μιας και είσαι Excel και δεν έχει πρόσβαση σε queries θα κανεις εισαγωγή το CSV με VBA σε 1 προσωρινό sheet...θα φορτώσεις το Υπάρχον φύλλο και το φύλλο του CSV σε 2 ξεχωριστά Recordset και θα κάνεις iterate to 2o Recordset(CSV) και θα ελέγχεις εαν υπαρχει το ID στο 1ο..ειδάλλως AddNew 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Moderators Spect~ Δημοσ. 16 Μαΐου 2022 Μέλος Moderators Share Δημοσ. 16 Μαΐου 2022 Θα το δω αργοτερα αν εχω χρονο και αν εχω καμια αλλη ερωτηση θα επανέλθω! Ευχαριστώ! Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
masteripper Δημοσ. 16 Μαΐου 2022 Share Δημοσ. 16 Μαΐου 2022 Αυτό θα σε βοηθήσει Απλώς παρακολούθησετε και ακολούθησε την λογική του (Δεν χρειάζεται να το αγοράσεις) 3 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
DrKo Δημοσ. 16 Μαΐου 2022 Share Δημοσ. 16 Μαΐου 2022 1 ώρα πριν, Spect~ είπε Να το κανω σε python για να βρισκει τις νεες εγγραφες και να κανει import μονο τις νεες; ετσι θα μπορουσα να το βαλω να κατεβαζει και το αρχειο μονο του (αν γινεται) Σε Python μπορείς να πάρεις τις υφιστάμενες εγγραφές σε ένα set και μετά να κάνεις update αυτό το set με όλες τις εγγραφές που θέλεις να βάλεις. Επειδή είναι set, θα κρατήσει μόνο τις νέες εγγραφές. Μετά, περνάς το set αυτό σε ένα CSV. Εάν οι εγγραφές σου αποτελούνται από πολλά πεδία, μπορείς να ορίσεις εσύ μία κλάση “Records” και να υλοποιήσεις τις magic methods που χρησιμοποιεί το set. Χωρίς να το έχω ψάξει, εικάζω πως θα χρησιμοποιεί την `__eq__`. Εάν μία εγγραφή είναι κάτι απλό, τότε και απλά strings θα κάνουν δουλειά. Εάν μία εγγραφή στηρίζεται μόνο σε ένα πεδίο, π.χ. ID, τότε κάνε το set μόνο με τα IDs και πρόσθεσε στο set μόνο τα εισερχόμενα IDs. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
masteripper Δημοσ. 16 Μαΐου 2022 Share Δημοσ. 16 Μαΐου 2022 (επεξεργασμένο) Μιας και πιάσαμε την Python import pandas as pd import openpyxl df_source = pd.read_excel("C:\\Temp\Book1.xlsx") df_csv = pd.read_csv("C:\\Temp\Book2.csv") df_result =pd.concat([df_source,df_csv]).drop_duplicates(['ID'], keep='last').sort_values(by=['ID']).reset_index(drop=True) df_result.to_excel("C:\\Temp\Final.xlsx") και για να μην μπλέκουμε με θεωρητικές εικασίες ... Επεξ/σία 16 Μαΐου 2022 από masteripper 3 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα