Προς το περιεχόμενο

VB .Net - Εξαγωγή δεδομένων από SQL βάση σε αρχείο Excel


de173

Προτεινόμενες αναρτήσεις

Καλησπέρα και καλό μήνα να έχουμε (από αύριο...).

 

θα ήθελα να εξάγω δεδομένα από μία βάση δεδομένων SQL και να τα φορτώσω σε Excel (xls ή xlsx) χρησιμοποιώντας κώδικα vb.

 

Το σενάριο έχει ως εξής:

 

Υπάρχει SQL πίνακας "Datatbl" από τον οποίο θα ήθελα να εξάγω ορισμένες στήλες και όχι όλες (π.χ. Col1, Col2, Col5).

Η εξαγωγή θα γίνει σε ένα αρχείο excel το οποίο υπάρχει και θα το ορίζει ο χρήστης (με κάποιο SaveFileDialog ή/και OpenFileDialog). Τα δεδομένα θα πηγαίνουν σε συγκεκριμένο sheet του excel αρχείου (έστω το "ExportData" sheet). Το excel θα περιλαμβάνει και άλλα φύλλα τα οποιά δε πρέπει να διαγραφούν.

 

Γνωρίζω ότι η διαδικασία μπορεί να γίνει και μέσα από το Excel συνδέοντάς το απευθείας με τη βάση δεδομένων SQL όπως επίσης και ότι μπορεί να γραφτεί SQL κώδικας του στυλ:

>
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\testing.xls;',
'SELECT * FROM [sheetName$]') select * from SQLServerTable

και να τον εκτελώ από την εφαρμογή vb απευθείας.

Αλλά δε θα ήθελα να χρησιμοποιήσω αυτές τις μεθόδους.

 

Κατά την εξαγωγή του αρχείου, το πρόγραμμα θα πρέπει να ελέγχει αν ήδη υπάρχουν δεδομένα στο sheet "ExportData" προκειμένου να ρωτήσει αν θα προσθέσει από κάτω αυτά που υπάρχουν ήδη στη βάση ή θα σβήσει όλα τα δεδομένα και θα καταχωρήσει αυτά που τραβάει εκείνη τη στιγμή.

Να σημειώσω επίσης ότι υπάρχουν επικεφαλίδες στο συγκεκριμένο sheet του excel, οπότε τα δεδομένα πρέπει να ξεκινούν από κάποια γραμμή και κάτω (στη περίπτωση που εισάγονται στο sheet με διαγραφή προηγούμενων δεδομένων στο ίδιο sheet), έστω από τη τέταρτη γραμμή και κάτω από τη πρώτη στήλη.

 

Υπάρχει κανένας εύκολος τρόπος να γίνεται αυτό;

 

Ευχαριστώ πολύ!

Γιώργος

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλησπέρα φίλε,

Βασικά ο καλύτερος τρόπος για να παίξεις προγραμματιστικά με το Excel είναι να χρησιμοποιήσεις κάποιες open source βιβλιοθήκες που σου δίνουν πρόσβαση σε φύλλα, στήλες κτλ κτλ. Εχω χρησιμοποιήσει στο παρελθόν το project NPOI : http://npoi.codeplex.com/documentation

Αυτό παίζει κυρίως με φορματ XLS 97-2003.

Είχα φτιάξει και μια κλάση που διαχειριζόταν τέτοιου τύπου αρχεία. Ρίξε μια ματιά εδώ

http://pastebin.com/u6iiu8yd

 

Επίσης δες και τα παραδείγματα του NPOI :

http://npoi.codeplex.com/SourceControl/changeset/view/79962#446538

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...