Κοινή χρήση μέσω


Εκτέλεση ερωτημάτων SQL σε αρχεία Excel

Μολονότι οι ενέργειες Excel μπορούν να χειρίζονται τα περισσότερα σενάρια αυτοματισμού του Excel, τα ερωτήματα SQL μπορούν να ανακτήσουν και να χειρίζονται σημαντικά ποσά δεδομένων του Excel πιο αποτελεσματικά.

Ας υποθέσουμε ότι μια ροή πρέπει να τροποποιεί μόνο τα αρχεία Excel που περιέχουν μια συγκεκριμένη τιμή. Για να επιτύχετε αυτήν τη λειτουργικότητα χωρίς ερωτήματα SQL, χρειάζεστε βρόχους, όρους και πολλές ενέργειες του Excel.

Εναλλακτικά, μπορείτε να υλοποιήσετε αυτήν τη λειτουργικότητα με ερωτήματα SQL χρησιμοποιώντας μόνο δύο ενέργειες, την ενέργεια Άνοιγμα σύνδεσης SQL και την ενέργεια Εκτέλεση πρότασης SQL.

Άνοιγμα σύνδεσης SQL σε αρχείο Excel

Πριν την εκτέλεση ενός ερωτήματος SQL, πρέπει να ανοίξετε μια σύνδεση με το αρχείο Excel στο οποίο θέλετε να αποκτήσετε πρόσβαση.

Για να δημιουργήσετε τη σύνδεση, δημιουργήστε μια νέα μεταβλητή με όνομα %Excel_File_Path% και αρχικοποιήσετε τη με τη διαδρομή αρχείου Excel. Προαιρετικά, μπορείτε να παραλείψετε αυτό το βήμα και να χρησιμοποιήσετε την κωδικοποιημένη διαδρομή του αρχείου αργότερα στη ροή.

Στιγμιότυπο οθόνης της ενέργειας

Τώρα, αναπτύξτε την ενέργεια Ανοίγματος σύνδεσης Open SQL και συμπληρώστε την παρακάτω συμβολοσειρά σύνδεσης στις ιδιότητές της.

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%Excel_File_Path%;Extended Properties="Excel 12.0 Xml;HDR=YES";

Σημείωμα

Για να χρησιμοποιήσετε επιτυχώς τη συμβολοσειρά σύνδεσης που παρουσιάζεται, πρέπει να κάνετε λήψη και εγκατάσταση του Microsoft Access Database Engine 2010 Redistributable.

Στιγμιότυπο οθόνης της ενέργειας

Άνοιγμα σύνδεσης SQL σε αρχείο Excel με προστασία κωδικού πρόσβασης

Απαιτείται διαφορετική προσέγγιση σε σενάρια όπου εκτελείτε ερωτήματα SQL σε αρχεία Excel που προστατεύονται με κωδικό πρόσβασης. Η ενέργεια Ανοίγματος σύνδεσης SQL δεν μπορεί να συνδεθεί σε αρχεία Excel που προστατεύονται με κωδικό πρόσβασης, επομένως πρέπει να καταργήσετε την προστασία.

Για να το επιτύχετε αυτό, εκκινήστε το αρχείο Excel χρησιμοποιώντας την ενέργεια Εκκίνηση του Excel. Το αρχείο είναι προστατευμένο με κωδικό πρόσβασης, επομένως συμπληρώστε τον κατάλληλο κωδικό πρόσβασης στο πεδίο Κωδικός πρόσβασης.

Στιγμιότυπο οθόνης της ενέργειας Εκκίνηση του Excel και του πεδίου κωδικού πρόσβασης.

Στη συνέχεια, αναπτύξτε τις κατάλληλες ενέργειες αυτοματοποίησης περιβάλλοντος εργασίας χρήστη και μεταβείτε στο Αρχείο>Πληροφορίες>Προστασία βιβλίου εργασίας>Κρυπτογράφηση με κωδικό πρόσβασης. Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με την αυτοματοποίηση περιβάλλοντος εργασίας χρήστη και τον τρόπο χρήσης των αντίστοιχων ενεργειών στην αυτοματοποίηση εφαρμογών επιφάνειας εργασίας.

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

Αφού επιλέξετε Κρυπτογράφηση με κωδικό πρόσβασης, συμπληρώστε μια κενή συμβολοσειρά στο αναδυόμενο παράθυρο διαλόγου χρησιμοποιώντας την ενέργεια Συμπλήρωση πεδίου κειμένου στα παράθυρα. Για να συμπληρώσετε μια κενή συμβολοσειρά, χρησιμοποιήστε την ακόλουθη παράσταση: %""%.

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

Για να πατήσετε το κουμπί OK στο παράθυρο διαλόγου και να εφαρμόσετε τις αλλαγές, αναπτύξτε την ενέργεια Πατήστε το κουμπί στο παράθυρο.

Στιγμιότυπο οθόνης του κουμπιού

Τέλος, αναπτύξτε την ενέργεια Κλείσιμο του Excel για να αποθηκεύσετε το μη προστατευμένο βιβλίο εργασίας ως νέο αρχείο Excel.

Στιγμιότυπο οθόνης της ενέργειας του κλεισίματος του Excel με επιλεγμένο το στοιχείο

Αφού αποθηκεύσετε το αρχείο, ακολουθήστε τις οδηγίες στην επιλογή Άνοιγμα μιας σύνδεσης SQL σε ένα αρχείο Excel, για να ανοίξετε μια σύνδεση σε αυτό.

Όταν ολοκληρωθεί η επεξεργασία του αρχείου Excel, χρησιμοποιήστε την ενέργεια Διαγραφή αρχείων για να διαγράψετε το μη προστατευμένο αντίγραφο του αρχείου Excel.

Στιγμιότυπο οθόνης της ενέργειας

Ανάγνωση των περιεχομένων ενός υπολογιστικού φύλλου του Excel

Μολονότι η ενέργεια του φύλλου εργασίας Ανάγνωση από φύλλο εργασίας Excel μπορεί να διαβάσει τα περιεχόμενα ενός φύλλου εργασίας Excel, οι βρόχοι μπορεί να χρειαστούν σημαντικό χρόνο για επαναλήψεις στα δεδομένα που ανακτήθηκαν.

Ένας πιο αποτελεσματικός τρόπος ανάκτησης συγκεκριμένων τιμών από υπολογιστικά φύλλα είναι η αντιμετώπιση αρχείων Excel ως βάσεων δεδομένων και η εκτέλεση ερωτημάτων SQL σε αυτά. Αυτή η προσέγγιση είναι ταχύτερη και αυξάνει την απόδοση της ροής.

Για να ανακτήσετε όλα τα περιεχόμενα ενός υπολογιστικού φύλλου, μπορείτε να χρησιμοποιήσετε το παρακάτω ερώτημα SQL στην ενέργεια Εκτέλεση πρότασης SQL.

SELECT * FROM [SHEET$]

Στιγμιότυπο οθόνης των δηλώσεων εκτέλεσης SQL που συμπληρώνονται με ένα ερώτημα SELECT.

Σημείωμα

Για να εφαρμόσετε αυτό το ερώτημα SQL στις ροές σας, αντικαταστήστε το σύμβολο κράτησης θέσης SHEET με το όνομα του υπολογιστικού φύλλου στο οποίο θέλετε να αποκτήσετε πρόσβαση.

Για να ανακτήσετε τις γραμμές που περιέχουν μια συγκεκριμένη τιμή σε μια συγκεκριμένη στήλη, χρησιμοποιήστε το παρακάτω ερώτημα SQL:

SELECT * FROM [SHEET$] WHERE [COLUMN NAME] = 'VALUE'

Σημείωμα

Για να εφαρμόσετε αυτό το ερώτημα SQL στις ροές σας, αντικαταστήστε:

  • SHEET με το όνομα του υπολογιστικού φύλλου στο οποίο θέλετε να αποκτήσετε πρόσβαση.
  • COLUMN NAME με τη στήλη που περιέχει την τιμή που θέλετε να βρείτε. Οι στήλες στην πρώτη γραμμή του φύλλου εργασίας Excel αναγνωρίζονται ως τα ονόματα στηλών του πίνακα.
  • VALUE με την τιμή που θέλετε να βρείτε.

Διαγραφή δεδομένων από γραμμή Excel

Παρόλο που το Excel δεν υποστηρίζει το ερώτημα DELETE SQL, μπορείτε να χρησιμοποιήσετε το ερώτημα UPDATE για να ορίσετε όλα τα κελιά μιας συγκεκριμένης γραμμής σε null.

Για μεγαλύτερη ακρίβεια, μπορείτε να χρησιμοποιήσετε το παρακάτω ερώτημα SQL:

UPDATE [SHEET$] SET [COLUMN1]=NULL, [COLUMN2]=NULL WHERE [COLUMN1]='VALUE'

Στιγμιότυπο οθόνης των δηλώσεων εκτέλεσης SQL που συμπληρώνονται με ένα ερώτημα UPDATE.

Κατά την ανάπτυξη της ροής σας πρέπει να αντικαταστήσετε το σύμβολο κράτησης θέσης SHEET με το όνομα του υπολογιστικού φύλλου στο οποίο θέλετε να αποκτήσετε πρόσβαση.

Τα σύμβολα κράτησης θέσης COLUMN1 και COLUMN2 αντιπροσωπεύουν τα ονόματα των στηλών προς χειρισμό. Αυτό το παράδειγμα έχει δύο στήλες, αλλά σε ένα πραγματικό σενάριο, ο αριθμός των στηλών μπορεί να είναι διαφορετικός. Οι στήλες στην πρώτη γραμμή του φύλλου εργασίας Excel αναγνωρίζονται ως τα ονόματα στηλών του πίνακα.

Το τμήμα [COLUMN1]='VALUE' του ερωτήματος καθορίζει τη γραμμή που θέλετε να ενημερώσετε. Στη ροή σας, χρησιμοποιήστε το όνομα στήλης και την τιμή με βάση το συνδυασμό που περιγράφει τις γραμμές με μοναδικό τρόπο.

Ανάκτηση δεδομένων Excel εκτός από μια συγκεκριμένη γραμμή

Σε ορισμένα σενάρια, ενδέχεται να χρειαστεί να ανακτήσετε όλα τα περιεχόμενα ενός υπολογιστικού φύλλου του Excel εκτός από μια συγκεκριμένη γραμμή.

Ένας κατάλληλος τρόπος για να επιτύχετε αυτό είναι να ορίσετε τις τιμές της ανεπιθύμητης γραμμής σε null και, στη συνέχεια, να ανακτήσετε όλες τις τιμές εκτός από τις τιμές null.

Για να αλλάξετε τις τιμές μιας συγκεκριμένης γραμμής στο υπολογιστικό φύλλο, μπορείτε να χρησιμοποιήσετε ένα ερώτημα SQL UPDATE, όπως παρουσιάζονται στην προβολή Διαγραφή δεδομένων από μια γραμμή Excel:

UPDATE [SHEET$] SET [COLUMN1]=NULL, [COLUMN2]=NULL WHERE [COLUMN1]='VALUE'

Στιγμιότυπο οθόνης των δηλώσεων εκτέλεσης SQL που συμπληρώνονται με ένα ερώτημα UPDATE.

Στη συνέχεια, εκτελέστε το παρακάτω ερώτημα SQL για να ανακτήσετε όλες τις γραμμές του υπολογιστικού φύλλου που δεν περιέχουν τιμές null:

SELECT * FROM [SHEET$] WHERE [COLUMN1] IS NOT NULL OR [COLUMN2] IS NOT NULL

Τα σύμβολα κράτησης θέσης COLUMN1 και COLUMN2 αντιπροσωπεύουν τα ονόματα των στηλών προς χειρισμό. Αυτό το παράδειγμα έχει δύο στήλες, αλλά σε έναν πραγματικό πίνακα, ο αριθμός των στηλών μπορεί να είναι διαφορετικός. Όλες οι στήλες στην πρώτη γραμμή του φύλλου εργασίας Excel αναγνωρίζονται ως τα ονόματα στηλών του πίνακα.