Αυτόματη εξαγωγές στο Microsoft Excel DataTable

Σήμερα θέλω να σας δείξω ένα παράδειγμα που με έχει εξυπηρετήσει για πολύ καιρό ακόμα και το χρησιμοποιώ ακόμα.
Θα κάνουμε ένα παράδειγμα για την εξαγωγή στο Excel DataTable πλήρως ανεξάρτητα από τον αριθμό των στηλών ή των γραμμών που έχουν.

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

Το πρώτο πράγμα που χρειαζόμαστε είναι να προσθέσετε μια αναφορά σε Microsoft.Office.Interop.Excel και κάνουμε ως εξής:

Importar referencia a Excel

Εισαγωγή αναφοράς στο Excel

Importar referencia Excel

Εισαγωγή αναφοράς του Excel

Τότε χρειαζόμαστε μια μορφή, ένα κουμπί, και dataGridView γραμμή προόδου. Μπορούμε να έχουμε, όπως φαίνεται στην εικόνα:

Formulario aplicación para exportar dataset a excel

Αίτηση για την εξαγωγή σύνολο δεδομένων στο Excel

Τώρα θέλω να δείξω όλος ο κώδικας είναι πολύ απλό πιο σημαντικό πράγμα είναι ότι προσαρμόζεται σε κάθε τραπέζι. Θα είναι σε θέση να επαναχρησιμοποιήσει χωρίς προβλήματα.

  Εισαγωγές System.Data
 Εισαγωγές System.Data.SqlClient
 Εισαγωγές Microsoft.Office.Interop

 Δημόσια τάξη Φόρμα1
     Ιδιωτικός DS Όπως Νέα DataSet

     Private Sub Form1_Load (ByVal αποστολέα Όπως System.Object, ByVal e Όσον System.EventArgs) Λαβές MyBase.Load
         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         »/ / Δημιουργήστε τη σύνδεση και να γεμίσει το DataGridView
         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         Δημ. CNN Όπως Νέα SqlConnection («Πηγή των δεδομένων = localhost \ SQLEXPRESS? Αρχική Κατάλογος Northwind =? Ολοκληρωμένη Ασφάλεια = True")
         Δημ. da Όπως Νέα SqlDataAdapter ("Επιλέξτε * από τους πελάτες", CNN)
         da.Fill (DS)
         DataGridView1.DataSource = ds.Tables (0)
     Sub End

     BtnExportar_Click Private Sub (ByVal αποστολέα Όπως System.Object, ByVal e Όσον System.EventArgs) Λαβές btnExportar.Click
         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         »/ / Δημιουργήστε το αντικείμενο του Excel
         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         Δημ. m_Excel
         Δημ. objLibroExcel
         Δημ. objHojaExcel
         m_Excel = CreateObject ("Excel.Application")
         m_Excel.Workbooks.Add objLibroExcel = ()
         objHojaExcel = objLibroExcel.Worksheets (1)
         objHojaExcel.Name = "Πελάτες"
         objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible
         objHojaExcel.Activate ()

         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         »/ / Ορισμός δύο μεταβλητές για τον έλεγχο της γραμμής και στήλης
         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         Δημ. σειρά As Integer = 1
         Δημ. στήλη As Integer = 1

         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         »/ / Ορίζουμε την γραμμή με τις επικεφαλίδες των στηλών
         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         objHojaExcel.Range («Α1»). Επιλέξτε ()
         Για κάθε dc Σε ds.Tables (0). Στήλες
             objHojaExcel.Range (ColumnName (στήλη) & 1). Value = dc.ColumnName
             στήλη + = 1
         Επόμενη
         σειρά + = 1

         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         »/ / Θα διαμορφώσετε τους τίτλους γραμμών
         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         Όπως Excel.Range Δημ. objRango = objHojaExcel.Range («Α1:" & ColumnName (ds.Tables (0) Columns.Count) & "1".)
         objRango.Font.Bold = True
         objRango.Cells.Interior.ColorIndex = 35

         objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalDown). linestyle = Excel.XlLineStyle.xlLineStyleNone
         objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalUp). linestyle = Excel.XlLineStyle.xlLineStyleNone
         objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeLeft). linestyle = Excel.XlLineStyle.xlLineStyleNone
         objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeRight). linestyle = Excel.XlLineStyle.xlContinuous
         objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeTop). linestyle = Excel.XlLineStyle.xlContinuous
         objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeBottom). linestyle = Excel.XlLineStyle.xlContinuous

         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         »/ / Τοποθέτηση όλων των γραμμών στο DataTable
         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         ProgressBar1.Maximum = ds.Tables (0). Rows.Count
         στήλη = 1
         ProgressBar1.Value = 0
         Για κάθε DR στην ds.Tables (0). Γραμμές
             στήλη = 1
             Για κάθε dc Σε ds.Tables (0). Στήλες
                 objHojaExcel.Range (ColumnName (στήλη) και σειρά). Value = dr (dc.ColumnName)
                 στήλη + = 1
             Επόμενη
             σειρά + = 1
             ProgressBar1.Value + = 1
         Επόμενη

         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         »/ / Θα προσαρμόσετε το πλάτος αυτόματα
         »/ / Από όλες τις στήλες που χρησιμοποιούνται
         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         objRango = objHojaExcel.Range («Α1:" & ColumnName (ds.Tables (0) Columns.Count) & ds.Tables (0) Rows.Count.ToString.).
         objRango.Select ()
         objRango.Columns.AutoFit ()

         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         »/ / Λέμε Excel για να εμφανιστεί
         »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         MsgBox ("Εξαγωγή στο Excel ολοκληρώθηκε", MsgBoxStyle.Information, ". :: Solovb.net ::.")
         m_Excel.Visible = True

     Sub End

     Δημόσια ColumnName Λειτουργία (ByVal αριθμός As Integer) As String
         Δημ. στήλη (256) Όπως String

         Στήλη (1) = "Α"
         στήλη (2) = "Β"
         στήλης (3) = "Γ"
         στήλη (4) = "Δ"
         στήλη (5) = "Ε"
         στήλη (6) = "F"
         στήλη (7) = "Ζ"
         στήλη (8) = "H"
         στήλη (9) = "Ι"
         στήλη (10) = "J"
         στήλη (11) = "Κ"
         στήλη (12) = "L"
         στήλη (13) = "Μ"
         στήλη (14) = "Ν"
         στήλη (15) = "Ο"
         στήλη (16) = "Π"
         στήλη (17) = "Q"
         στήλη (18) = "R"
         στήλη (19) = "S"
         στήλη (20) = "Τ"
         στήλη (21) = "U"
         στήλη (22) = "V"
         στήλη (23) = "W"
         στήλη (24) = "Χ"
         στήλη (25) = "Y"
         στήλη (26) = "Ζ"
         στήλη (27) = "ΑΑ"
         στήλη (28) = "ΑΒ"
         στήλη (29) = "AC"
         στήλη (30) = "μ.Χ."
         στήλη (31) = "ΑΕ"
         στήλη (32) = "AF"
         στήλη (33) = "AG"
         στήλη (34) = "AH"
         στήλη (35) = "AI"
         στήλη (36) = "AJ"
         στήλη (37) = "AK"
         στήλη (38) = "AL"
         στήλη (39) = "AM"
         στήλη (40) = "ΜΙΑ"
         στήλη (41) = "AO"
         στήλη (42) = "AP"
         στήλη (43) = "AQ"
         στήλη (44) = "AR"
         στήλη (45) = "AS"
         στήλη (46) = "ΑΤ"
         στήλη (47) = "UA"
         στήλη (48) = "AV"
         στήλη (49) = "AW"
         στήλη (50) = "τσεκούρι"
         στήλη (51) = "AY"
         στήλη (52) = "Ω"
         στήλη (53) = "ΒΑ"
         στήλη (54) = "BB"
         στήλη (55) = "π.Χ."
         στήλη (56) = "BD"
         στήλη (57) = "BE"
         στήλη (58) = "BF"
         στήλη (59) = "BG"
         στήλη (60) = "BH"
         στήλη (61) = "BI"
         στήλη (62) = "BJ"
         στήλη (63) = "BK"
         στήλη (64) = "BL"
         στήλη (65) = "BM"
         στήλη (66) = "BN"
         στήλη (67) = "ΒΟ"
         στήλη (68) = "BP"
         στήλη (69) = "BQ"
         στήλη (70) = "BR"
         στήλη (71) = "BS"
         στήλη (72) = "BT"
         στήλη (73) = "BU"
         στήλη (74) = "BV"
         στήλη (75) = "BW"
         στήλη (76) = "BX"
         στήλη (77) = "ΑΠΟ"
         στήλη (78) = "BZ"
         στήλη (79) = "CA"
         στήλη (80) = "CB"
         στήλη (81) = "CC"
         στήλη (82) = "CD"
         στήλη (83) = "CE"
         στήλη (84) = "ΚΙ"
         στήλη (85) = "CG"
         στήλη (86) = "CH"
         στήλη (87) = "CI"
         στήλη (88) = "CJ"
         στήλη (89) = "CK"
         στήλη (90) = "CL"
         στήλη (91) = "CM"
         στήλη (92) = "ΣΟ"
         στήλη (93) = "CO"
         στήλη (94) = "CP"
         στήλη (95) = "CQ"
         στήλη (96) = "CR"
         στήλη (97) = "CS"
         στήλη (98) = "CT"
         στήλη (99) = "CU"
         στήλη (100) = "βιογραφικό"
         στήλη (101) = "CW"
         στήλη (102) = "CX"
         στήλη (103) = "CY"
         στήλη (104) = "CZ"
         στήλη (105) = "ΔΑ"
         στήλη (106) = "DB"
         στήλη (107) = "DC"
         στήλη (108) = "DD"
         στήλη (109) = "DE"
         στήλη (110) = «DF»
         στήλη (111) = "ΓΔ"
         στήλη (112) = "DH"
         στήλη (113) = "ID"
         στήλη (114) = "DJ"
         στήλη (115) = "DK"
         στήλη (116) = "DL"
         στήλη (117) = "μάρκα"
         στήλη (118) = "DN"
         στήλη (119) = "DO"
         στήλη (120) = "DP"
         στήλη (121) = "DQ"
         στήλη (122) = "DR"
         στήλη (123) = "DS"
         στήλη (124) = "DT"
         στήλη (125) = "DU"
         στήλη (126) = "DV"
         στήλη (127) = "DW"
         στήλη (128) = "DX"
         στήλη (129) = "DY"
         στήλη (130) = "DZ"
         στήλη (131) = "ΕΑ"
         στήλη (132) = "ΕΒ"
         στήλη (133) = "ΕΚ"
         στήλη (134) = "ΕΔ"
         στήλη (135) = "Ε.Ε."
         στήλη (136) = "ΕΥ"
         στήλη (137) = "EG"
         στήλη (138) = "EH"
         στήλη (139) = "ΕΙ"
         στήλη (140) = "EJ"
         στήλη (141) = "Ε.Κ."
         στήλη (142) = "ON"
         στήλη (143) = "MS"
         στήλη (144) = "EL"
         στήλη (145) = "EO"
         στήλη (146) = "ΕΚ"
         στήλη (147) = "EQ"
         στήλη (148) = "ER"
         στήλη (149) = "ES"
         στήλη (150) = "Ε.Τ."
         στήλη (151) = "ΕΕ"
         στήλη (152) = "EV"
         στήλη (153) = "EW"
         στήλη (154) = "EX"
         στήλη (155) = "ΕΥ"
         στήλη (156) = "EZ"
         στήλη (157) = "FA"
         στήλη (158) = «FB»
         στήλη (159) = "FC"
         στήλη (160) = "FD"
         στήλη (161) = "FE"
         στήλη (162) = "FF"
         στήλη (163) = "FG"
         στήλη (164) = "FH"
         στήλη (165) = "FI"
         στήλη (166) = "FJ"
         στήλη (167) = "FK"
         στήλη (168) = "FL"
         στήλη (169) = "FM"
         στήλη (170) = "FN"
         στήλη (171) = "FO"
         στήλη (172) = "ΠΠ"
         στήλη (173) = "ΚΙ"
         στήλη (174) = "FR"
         στήλη (175) = "FS"
         στήλη (176) = "FT"
         στήλη (177) = "FU"
         στήλη (178) = "PV"
         στήλη (179) = "FW"
         στήλη (180) = "FX"
         στήλη (181) = "ΟΕ"
         στήλη (182) = "FZ"
         στήλη (183) = "GA"
         στήλη (184) = "GB"
         στήλη (185) = "GC"
         στήλη (186) = "GD"
         στήλη (187) = "GE"
         στήλη (188) = "GF"
         στήλη (189) = "GG"
         στήλη (190) = "GH"
         στήλη (191) = "ΓΗ"
         στήλη (192) = "GJ"
         στήλη (193) = "GK"
         στήλη (194) = "GL"
         στήλη (195) = "GM"
         στήλη (196) = "GN"
         στήλη (197) = "GO"
         στήλη (198) = "GP"
         στήλη (199) = "GQ"
         στήλη (200) = "GR"
         στήλη (201) = "GS"
         στήλη (202) = "GT"
         στήλη (203) = "GU"
         στήλη (204) = "GV"
         στήλη (205) = "GW"
         στήλη (206) = "GX"
         στήλη (207) = "GY"
         στήλη (208) = "GZ"
         στήλη (209) = "HA"
         στήλη (210) = "ΗΒ"
         στήλη (211) = "HC"
         στήλη (212) = "HD"
         στήλη (213) = "HE"
         στήλη (214) = "HF"
         στήλη (215) = "HG"
         στήλη (216) = "HH"
         στήλη (217) = "HI"
         στήλη (218) = "HJ"
         στήλη (219) = "Χονγκ Κονγκ"
         στήλη (220) = "HL"
         στήλη (221) = "Α.Ε."
         στήλη (222) = "ΠΝ"
         στήλη (223) = "ΟΥ"
         στήλη (224) = "HP"
         στήλη (225) = "στρατηγείο"
         στήλη (226) = "HR"
         στήλη (227) = "ΕΣ"
         στήλη (228) = "HT"
         στήλη (229) = "HU"
         στήλη (230) = "HV"
         στήλη (231) = "HW"
         στήλη (232) = "H"
         στήλη (233) = "HY"
         στήλη (234) = "HZ"
         στήλη (235) = "Α"
         στήλη (236) = "IB"
         στήλη (237) = "IC"
         στήλη (238) = "ID"
         στήλη (239) = "ΑΠ"
         στήλη (240) = "ΑΝ"
         στήλη (241) = "IG"
         στήλη (242) = "ΙΗ"
         στήλη (243) = "ΙΙ"
         στήλη (244) = "I"
         στήλη (245) = "ΙΚ"
         στήλη (246) = "IL"
         στήλη (247) = "IM"
         στήλη (248) = "ΣΕ"
         στήλη (249) = "IO"
         στήλη (250) = "ΠΕ"
         στήλη (251) = "IQ"
         στήλη (252) = "R"
         στήλη (253) = "ΚτΠ"
         στήλη (254) = "IT"
         στήλη (255) = "ΔΜ"
         στήλη (256) = "IV"

         Επιστροφή στη στήλη (αριθμός)
     Τέλος Λειτουργία
 Τέλος κατηγορίας 

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

34 απαντήσεις σε "Αυτόματη Εξαγωγή DataTable στο Microsoft Excel"

  1. Bitacoras.com λέει:

    Πληροφορίες Bitacoras.com ...

    Τιμή στο Bitacoras.com: Γεια σου, σήμερα θέλω να σας δείξω ένα παράδειγμα που με έχει εξυπηρετήσει για πολύ καιρό ακόμα και το χρησιμοποιώ ακόμα. Θα κάνουμε ένα παράδειγμα για την εξαγωγή στο Excel DataTable πλήρως ανεξάρτητα από τον αριθμό των στηλών ή γραμμών που Teng .....

    • Linares Κάρλος λέει:

      Καλή ...

      Εξαιρετική θέση! Σας ευχαριστώ με βοήθησε πλήρη, αλλά έχω μια αμφιβολία .. Δεδομένου ότι η σύνδεση είναι με sql .. Πώς μπορώ να μετονομάσω στήλες!; Επειδή φέρνει το όνομα της στους τομείς της sql ..!

      Ελπίζω και έχω καταλάβει ..

      Σας ευχαριστούμε!

  2. Denko λέει:

    Πάω να σώσει ...
    σε κάποιο σημείο θα ήταν χρήσιμο ...

  3. Victor λέει:

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

  4. Γιάννης λέει:

    Τεράστια πηγαίου κώδικα. σερβίρεται με καλά. q ήταν εδώ και καιρό.

  5. Γιάννης λέει:

    Παρά το γεγονός ότι πρέπει επίσης να ecxel την εισαγωγή ενός πίνακα δεδομένων. αλλά θα μπορούσε να είναι το περιβάλλον σε ένα datagrid και στη συνέχεια την ενημέρωση των DataAdapter και αποδοχή αλλαγών στο DataTable θα αποθηκευτούν στο BD q ... Ελπίζω να μπορεί να βοηθήσει ή να βρει .. ευχαριστίες

  6. jose λέει:

    Γεια σας ευχαριστώ πολύ! αυτή η εξαιρετική!
    Αλλά αναρωτιέμαι όπου datagrid ορίζει ότι χρησιμοποιείται στην περίπτωση που είναι αρκετά DataGrid;

    • Linares Κάρλος λέει:

      Στον πίνακα είστε για την πρόσκληση ...

      * επιλέξτε από (όνομα του πίνακα)

      Εάν θέλετε να καθορίσετε ποια πεδία θέλετε

      επιλέξετε (πεδία, τα πεδία, τα πεδία) * από τον πίνακα
      EJM
      επιλέξετε το αυτοκίνητο, το χρώμα, έτος από το αυτοκίνητο

  7. Μπέτο, δήλωσε:

    Έχω ένα πρόβλημα με αυτό το παράδειγμα να κάνω 2 λάθη στις μεταβλητές της συνεχούς και dr, μπορώ να κάνω για να το διορθώσω;

    • Ελισσαιέ λέει:

      Γεια σας, δοκιμάστε το εξής:
      Για κάθε dr Όπως DataRow Σε ds.Tables (0). Γραμμές και DataColumn Για κάθε συνεχούς Στο ds.Tables ως (0). Στήλες

      Ελπίζω ότι αυτό έχει επιλυθεί. Χαιρετισμοί.

  8. jason λέει:

    Hola.
    chevere αυτό, αλλά ένα μέρος του ονόματος της στήλης δεν είναι πολύ λειτουργικό.
    Θα ανεβάσετε στο blog μου ένα πολύ μικρότερο μέγεθος περιορισμούς και χωρίς κωδικό

    jaysson.blogspot.com

  9. jason λέει:

    έτοιμη και ανέβηκε το άρθρο

    http://jaysson.blogspot.com/2010/06/columnas-es-excel.html

  10. Rodrigo λέει:

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

    Ας δούμε αν κάποιος μπορεί να λύσει την αμφιβολία.
    Σας ευχαριστώ.

  11. Linares Κάρλος λέει:

    Καλή ...

    Εξαιρετική θέση! Σας ευχαριστώ με βοήθησε πλήρη, αλλά έχω μια αμφιβολία .. Δεδομένου ότι η σύνδεση είναι με sql .. Πώς μπορώ να μετονομάσω στήλες!; Επειδή φέρνει το όνομα της στους τομείς της sql ..!

    Ελπίζω και έχω καταλάβει ..

    Σας ευχαριστούμε!

  12. Αλέξανδρος λέει:

    Public Sub ExportarDatosExcel (ByVal DataGridView1 Όπως DataGridView, ByVal τίτλο Όπως String)
    Όπως Νέα Excel.Application Δημ. m_Excel
    m_Excel.Cursor = Excel.XlMousePointer.xlWait
    m_Excel.Visible = True
    Όπως Excel.Workbook Δημ. objLibroExcel = m_Excel.Workbooks.Add
    Όπως Excel.Worksheet Δημ. objHojaExcel = objLibroExcel.Worksheets (1)
    Με objHojaExcel
    . Visible = Excel.XlSheetVisibility.xlSheetVisible
    . Ενεργοποίηση ()
    «Κεφαλίδα
    . Εύρος («Α1: L1"). Συγχώνευση ()
    . Εύρος («Α1: L1"). Value = "ΙΝΣΤΙΤΟΥΤΟ ARGENCAF"
    . Εύρος («Α1: L1"). Font.Bold = True
    . Εύρος («Α1: L1"). Font.Size = 15
    «Ταφτ
    . Εύρος («Α2: L2"). Συγχώνευση ()
    . Εύρος («Α2: L2"). Αξία τίτλος =
    . Εύρος («Α2: L2"). Font.Bold = True
    . Εύρος («Α2: L2"). Font.Size = 12

    Const primeraLetra Όπως Χαρ = "Α"
    Const firstNumber Όπως Σύντομη = 3
    Δημ. επιστολή Όπως Χαρ, Χαρ Όπως UltimaLetra
    Dim Αριθμός As Integer, UltimoNumero As Integer
    Όπως Byte Dim = Asc cod_letra (primeraLetra) - 1
    Δημ. As String = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator sepDec
    Δημ. As String = Application.CurrentCulture.NumberFormat.NumberGroupSeparator sepMil
    «Υπόδειγμα των στηλών της κόρης του υπολογισμού
    StrColumna Δημ. As String = ""
    LetraIzq Δημ. As String = ""
    Όπως Byte Dim = Asc cod_LetraIzq (primeraLetra) - 1
    Επιστολή = primeraLetra
    Αριθμός = firstNumber
    Όπως Excel.Range Δημ. objCelda
    Για κάθε γ Όπως DataGridViewColumn Σε DataGridView1.Columns
    Στη συνέχεια, αν c.Visible
    Αν Επιστολή = "Ζ" Τότε
    Επιστολή = primeraLetra
    cod_letra = Asc (primeraLetra)
    cod_LetraIzq + = 1
    LetraIzq = Chr (cod_LetraIzq)
    Αλλού
    cod_letra + = 1
    Επιστολή = Chr (cod_letra)
    End If
    strColumna = LetraIzq + + στίχοι Numero.ToString
    = objCelda. Εύρος (strColumna, Type.Missing)
    objCelda.Value = c.HeaderText
    objCelda.EntireColumn.Font.Size = 8
    «ObjCelda.EntireColumn.NumberFormat = c.DefaultCellStyle.Format
    Αν c.ValueType Είναι gettype (Δεκαδικός) OrElse c.ValueType Είναι gettype (διπλό) Στη συνέχεια,
    objCelda.EntireColumn.NumberFormat = "#" + + sepMil "0" + + sepDec "00"
    End If
    End If
    Επόμενη

    Όπως Excel.Range Δημ. objRangoEncab =. Εύρους (+ primeraLetra Numero.ToString, LetraIzq + στίχοι Numero.ToString +)
    objRangoEncab.BorderAround (1, Excel.XlBorderWeight.xlMedium)
    Αποστολή UltimaLetra =
    Δημ. As String = LetraIzq UltimaLetraIzq

    «Δεδομένα φορτίου
    Dim i As Integer = Αριθμός + 1

    Για κάθε Στον κατάλογο Όπως DataGridViewRow DataGridView1.Rows
    LetraIzq = ""
    cod_LetraIzq = Asc (primeraLetra) - 1
    Επιστολή = primeraLetra
    cod_letra = Asc (primeraLetra) - 1
    Για κάθε γ Όπως DataGridViewColumn Σε DataGridView1.Columns
    Στη συνέχεια, αν c.Visible
    Αν Επιστολή = "Ζ" Τότε
    Επιστολή = primeraLetra
    cod_letra = Asc (primeraLetra)
    cod_LetraIzq + = 1
    LetraIzq = Chr (cod_LetraIzq)
    Αλλού
    cod_letra + = 1
    Επιστολή = Chr (cod_letra)
    End If
    strColumna = LetraIzq + στίχοι
    "Εδώ θα πρέπει να είναι το φορτίο
    . Κύτταρα (i, strColumna) = IIf (IsDBNull (reg.ToString), "", reg.Cells (c.Index). Αξία)
    ». Κύτταρα (i, strColumna) = IIf (IsDBNull (Καν. (c.DataPropertyName)), c.DefaultCellStyle.NullValue, Καν. (c.DataPropertyName))
    ». Εύρος (strColumna + I, strColumna + i). Στο ()

    End If
    Επόμενη
    Όπως Excel.Range Δημ. objRangoReg =. Εύρους (+ primeraLetra i.ToString, i.ToString strColumna +)
    objRangoReg.Rows.BorderAround ()
    objRangoReg.Select ()
    i + = 1
    Επόμενη
    UltimoNumero = θ

    «Σχεδιάστε γραμμές των στηλών
    LetraIzq = ""
    cod_LetraIzq = Asc ("Α")
    cod_letra = Asc (primeraLetra)
    Επιστολή = primeraLetra
    Για κάθε γ Όπως DataGridViewColumn Σε DataGridView1.Columns
    Στη συνέχεια, αν c.Visible
    . objCelda = Εύρος (LetraIzq + + στίχοι primerNumero.ToString, LetraIzq + στίχοι + (UltimoNumero -. 1) toString)
    objCelda.BorderAround ()
    Αν Επιστολή = "Ζ" Τότε
    Επιστολή = primeraLetra
    cod_letra = Asc (primeraLetra)
    LetraIzq = Chr (cod_LetraIzq)
    cod_LetraIzq + = 1
    Αλλού
    cod_letra + = 1
    Επιστολή = Chr (cod_letra)
    End If
    End If
    Επόμενη

    «Σχεδιάστε το παχύ εξωτερικά σύνορα
    Όπως Excel.Range Δημ. objRango = Εύρος. (PrimeraLetra + primerNumero.ToString, UltimaLetra UltimaLetraIzq + + (UltimoNumero -. 1) toString)
    objRango.Select ()
    objRango.Columns.AutoFit ()
    objRango.Columns.BorderAround (1, Excel.XlBorderWeight.xlMedium)
    Με το τέλος

    m_Excel.Cursor = Excel.XlMousePointer.xlDefault
    Sub End

    ToolStripButton2_Click_1 Private Sub (ByVal αποστολέα Όπως System.Object, ByVal e Όσον System.EventArgs) Λαβές ToolStripButton2.Click
    ExportarDatosExcel (DataGridView1, "εξαγωγή")
    Sub End

  13. JuanPeople λέει:

    ΕΞΑΙΡΕΤΙΚΗ! .... ευχαριστώ τον αδελφό, και πήρε 3 ημέρες, με μία μονάδα για την εισαγωγή / εξαγωγή του Excel και τίποτα δεν ελειτούργησε .... αλλά με τη λύση σας βλέπω ξανά τα αστέρια ... χαιρετισμούς από Αρεκίπα! ..

  14. TECKNOCK λέει:

    Ο κωδικός αυτός με βοήθησε πολύ, γι 'αυτό συνεργάζεται με δύο σεντ μου:

    Έχουν βελτιστοποιηθεί η "ColumnName» για να καταλήξει ahsta ZZ στήλη (702 et al.)

    Εδώ σας δίνω τον κωδικό:

    Δημόσια ColumnName Λειτουργία (ByVal αριθμός As Integer) As String
    Δημ. στήλη (703) Όπως String

    Στήλη (1) = "Α"
    στήλη (2) = "Β"
    στήλης (3) = "Γ"
    στήλη (4) = "Δ"
    στήλη (5) = "Ε"
    στήλη (6) = "F"
    στήλη (7) = "Ζ"
    στήλη (8) = "H"
    στήλη (9) = "Ι"
    στήλη (10) = "J"
    στήλη (11) = "Κ"
    στήλη (12) = "L"
    στήλη (13) = "Μ"
    στήλη (14) = "Ν"
    στήλη (15) = "Ο"
    στήλη (16) = "Π"
    στήλη (17) = "Q"
    στήλη (18) = "R"
    στήλη (19) = "S"
    στήλη (20) = "Τ"
    στήλη (21) = "U"
    στήλη (22) = "V"
    στήλη (23) = "W"
    στήλη (24) = "Χ"
    στήλη (25) = "Y"
    στήλη (26) = "Ζ"

    Δημ. θ = 27
    Για Ltr1 = 1 έως 26
    Για Ltr2 = 1 έως 26
    στήλη (θ) = στήλη (Ltr1) και στη στήλη (Ltr2)
    i + = 1
    Επόμενη
    Επόμενη

    Επιστροφή στη στήλη (αριθμός)
    Τέλος Λειτουργία

    • Ελισσαιέ λέει:

      TECKNOCK, σας ευχαριστώ πολύ για τη βοήθεια!, Όμως, να έχετε κατά νου ότι, αν το βιβλίο που δημιουργούμε είναι συμβατό με το Excel 97-2003 επιτρέπεται μέγιστη στήλες είναι 256 (έως IV). Ακριβώς όπως ένα σχόλιο για να το λάβουν αυτό υπόψη.

      Ελισσαιέ

  15. raysip λέει:

    Όταν τρέχω την εφαρμογή τοπικών funcioana σωστά, αλλά όταν το ανεβάσετε σε έναν ιστοχώρο δεν παράγουν το Excel, αλλά δεν παίρνουν λάθος

  16. Aderson λέει:

    Ψάχνω haciend γειωμένη σε SQL μου

    όπως δεν έκανα, αλλά θα κάνω AJA

  17. Παύλος λέει:

    Χρειάζομαι βοήθεια για να προσπαθήσω να το κάνω κάθε τρόπο που είναι εδώ και παίρνω όλα λάθος

  18. JOHN λέει:

    Χέρι, είστε η τέλεια μέγιστη funca.

  19. Neji λέει:

    πολύ καλά, συγχαρητήρια είναι στην καλύτερη θέση που έχω διαβάσει και διαβουλεύσεις

  20. Patricia λέει:

    Σας ευχαριστούμε! Ήταν πολύ χρήσιμο

  21. f.delgado λέει:

    Ει ο κώδικας δεν λειτουργεί για μένα σηματοδοτεί ένα da.Fill λάθη (DS)

    Μπορώ να επισημάνω το σφάλμα δεν βρέθηκε SqlException

    μπορείτε να με βοηθήσετε

  22. jav λέει:

    ένα ερώτημα μπορεί να κάνει άμεση φόρτωση ερώτημα SQL για να υπερέχει;

    εκ των προτέρων μέσω

  23. Delfino Μοράλες λέει:

    Γεια σας φίλοι πρώτα απ 'όλα σας agradesco τη συμβολή σας.
    Σημειώστε ότι έχω ένα πρόβλημα που δεν μπορείτε να βρείτε στην αναφορά που να αναφέρει, έχω εγκαταστήσει το Office 2010 και το οποίο δεν μπορεί να είναι το πρόβλημά μου.
    agradeseria μερικές συμβουλές για να σας.

  24. Αμερική λέει:

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

    Καθένας ξέρει πώς να το διορθώσω;

  25. Azofeifa Hernan λέει:

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

    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Ορίζουμε την γραμμή με τις επικεφαλίδες των στηλών
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objHojaExcel.Range («Α1»). Επιλέξτε ()
    Dim I As Integer = 0
    Lncol Δημ. As Integer = 1
    Για κάθε συνεχούς Σε dgvSocios.Columns

    Αν dgvSocios.Columns.Item (Ι). Visible = True Τότε
    objHojaExcel.Range (ColumnName (lncol) & 1). Value = dgvSocios.Columns.Item (Ι). HeaderText
    lncol + = 1
    End If
    I + = 1
    Επόμενη
    σειρά + = 1

    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Θα διαμορφώσετε τους τίτλους γραμμών
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Όπως Excel.Range Δημ. objRango = objHojaExcel.Range («Α1:" & ColumnName (lncol) & "1")
    objRango.Font.Bold = True
    objRango.Cells.Interior.ColorIndex = 35

    objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalDown). linestyle = Excel.XlLineStyle.xlLineStyleNone
    objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalUp). linestyle = Excel.XlLineStyle.xlLineStyleNone
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeLeft). linestyle = Excel.XlLineStyle.xlLineStyleNone
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeRight). linestyle = Excel.XlLineStyle.xlContinuous
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeTop). linestyle = Excel.XlLineStyle.xlContinuous
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeBottom). linestyle = Excel.XlLineStyle.xlContinuous

    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Τοποθέτηση όλων των γραμμών στο DataTable
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    ProgressBar1.Maximum = dgvSocios.Rows.Count
    στήλη = 0
    ProgressBar1.Value = 0
    ProgressBar1.Visible = True
    Lnfila Δημ. As Integer = 0
    Ι = 1
    Για κάθε DR στην dgvSocios.Rows
    στήλη = 0

    Για κάθε συνεχούς Σε dgvSocios.Columns
    Αν dgvSocios.Columns.Item (στήλη). Visible = True Τότε
    objHojaExcel.Range (ColumnName (Ι) & σειρά). Value = dgvSocios.Item (στήλη, lnfila). Value.ToString
    I + = 1
    End If
    στήλη + = 1
    Επόμενη
    lnfila + = 1
    σειρά + = 1
    ProgressBar1.Value + = 1
    Επόμενη

    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Θα προσαρμόσετε το πλάτος αυτόματα
    »/ / Από όλες τις στήλες που χρησιμοποιούνται
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objRango = objHojaExcel.Range («Α1:" & ColumnName (lncol) & (lnfila + 1) toString.)
    objRango.Select ()
    objRango.Columns.AutoFit ()

    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Λέμε Excel για να εμφανιστεί
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    MsgBox ("Εξαγωγή στο Excel ολοκληρώθηκε", MsgBoxStyle.Information, ". :: Solovb.net ::.")
    m_Excel.Visible = True

  26. Pako λέει:

    Φέρνοντας ένα κομμάτι για το σκοπό αυτό, ο παρακάτω κώδικας δεν επιτρέπει τη χρήση της "Σειρά" να μην απαιτούν τη λειτουργία "ColumnName"

    Φιλικά,

    Εισαγωγές System.Data
    Εισαγωγές System.Data.SqlClient
    Εισαγωγές Microsoft.Office.Interop.Excel
    Δημόσια mutil Ενότητα
    Public Sub ExportarDtToExcel (ByVal την DT System.Data.DataTable, τίτλος ByVal Όπως String)
    Όπως Excel.Application Δημ. m_Excel
    Όπως Excel.Workbook Δημ. objLibroExcel
    Όπως Φύλλο Δημ. objHojaExcel
    Προσπαθώ
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Δημιουργήστε το αντικείμενο του Excel
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    m_Excel = CreateObject ("Excel.Application")
    m_Excel.Workbooks.Add objLibroExcel = ()
    objHojaExcel = objLibroExcel.Worksheets (1)
    objHojaExcel.Name = Τίτλος
    objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible
    objHojaExcel.Activate ()

    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Ορισμός δύο μεταβλητές για τον έλεγχο της γραμμής και στήλης
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Δημ. σειρά As Integer = 1
    Δημ. στήλη As Integer = 1

    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Ορίζουμε την γραμμή με τις επικεφαλίδες των στηλών
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    «ObjHojaExcel.Range (« Α1 »). Επιλέξτε ()

    objHojaExcel.Cells (γραμμή, στήλη). Επιλέξτε ()
    Για κάθε συνεχούς Σε Dt.Columns
    objHojaExcel.Cells (γραμμή, στήλη). Value = dc.ColumnName
    στήλη + = 1
    Επόμενη
    σειρά + = 1

    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Θα διαμορφώσετε τους τίτλους γραμμών
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Όπως Excel.Range = αμυδρό objRango objHojaExcel.Range (objHojaExcel.Cells (1, 1), objHojaExcel.Cells (1, Dt.Columns.Count))
    objRango.Font.Bold = True
    objRango.Cells.Interior.ColorIndex = 35

    objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalDown). linestyle = Excel.XlLineStyle.xlLineStyleNone
    objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalUp). linestyle = Excel.XlLineStyle.xlLineStyleNone
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeLeft). linestyle = Excel.XlLineStyle.xlLineStyleNone
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeRight). linestyle = Excel.XlLineStyle.xlContinuous
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeTop). linestyle = Excel.XlLineStyle.xlContinuous
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeBottom). linestyle = Excel.XlLineStyle.xlContinuous

    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Τοποθέτηση όλων των γραμμών στο DataTable
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

    στήλη = 1

    Για κάθε DR στην Dt.Rows
    στήλη = 1
    Για κάθε συνεχούς Σε Dt.Columns
    objHojaExcel.Cells (γραμμή, στήλη). Value = dr (dc.ColumnName)
    στήλη + = 1
    Επόμενη
    σειρά + = 1

    Επόμενη

    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Θα προσαρμόσετε το πλάτος αυτόματα
    »/ / Από όλες τις στήλες που χρησιμοποιούνται
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objHojaExcel.Cells objRango = (1, Dt.Columns.Count)
    objRango.Select ()
    objRango.Columns.AutoFit ()

    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    »/ / Λέμε Excel για να εμφανιστεί
    »/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    MsgBox ("Εξαγωγή στο Excel Πλήρης" MsgBoxStyle.Information, "Εξαγωγή")
    m_Excel.Visible = True

    Πιάσε πρώην Όπως Εξαίρεση

    MsgBox (ex.ToString)

    Τελικά

    objHojaExcel = Τίποτα
    objLibroExcel = Τίποτα
    m_Excel = Τίποτα

    Τέλος Δοκιμάστε
    Sub End

    Τέλος Ενότητα

  27. Pamela λέει:

    κάποιος παρακαλώ να εξηγήσει την αύξηση progress1;

Σχόλιο