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

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

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

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

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

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

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

Η ενέργεια Ορισμός μεταβλητής συμπληρώνεται με τη διαδρομή του αρχείου Excel.

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

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

Note

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

Η ενέργεια Άνοιγμα σύνδεσης SQL.

Άνοιγμα σύνδεσης 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.

Note

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

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

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

Note

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

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

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

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

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

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

Οι δηλώσεις Εκτέλεσης SQL που συμπληρώνονται με ένα ερώτημα UPDATE.

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

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

Το τμήμα [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

Note

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