Σήμερα θέλω να σας δείξω ένα παράδειγμα που με έχει εξυπηρετήσει για πολύ καιρό ακόμα και το χρησιμοποιώ ακόμα.
Θα κάνουμε ένα παράδειγμα για την εξαγωγή στο Excel DataTable πλήρως ανεξάρτητα από τον αριθμό των στηλών ή των γραμμών που έχουν.
Μπορεί να υπάρχουν πολλοί τρόποι να γίνει αυτό, αλλά θεωρώ ότι είναι πολύ χρήσιμο δεδομένου ότι αυτή η μέθοδος λειτουργεί για οποιαδήποτε έκδοση του Excel. Για compatilidad θέματα με νεότερες εκδόσεις του Excel χειρίζονται μόνο 256 στήλες.
Το πρώτο πράγμα που χρειαζόμαστε είναι να προσθέσετε μια αναφορά σε Microsoft.Office.Interop.Excel και κάνουμε ως εξής:

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

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

Αίτηση για την εξαγωγή σύνολο δεδομένων στο 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" Επιστροφή στη στήλη (αριθμός) Τέλος Λειτουργία Τέλος κατηγορίας
Αυτή η μέθοδος έχει εξυπηρετήσει καλά και ελπίζω ότι εσείς και εγώ ... αφήστε τα σχόλιά σας.
Πληροφορίες Bitacoras.com ...
Τιμή στο Bitacoras.com: Γεια σου, σήμερα θέλω να σας δείξω ένα παράδειγμα που με έχει εξυπηρετήσει για πολύ καιρό ακόμα και το χρησιμοποιώ ακόμα. Θα κάνουμε ένα παράδειγμα για την εξαγωγή στο Excel DataTable πλήρως ανεξάρτητα από τον αριθμό των στηλών ή γραμμών που Teng .....
Καλή ...
Εξαιρετική θέση! Σας ευχαριστώ με βοήθησε πλήρη, αλλά έχω μια αμφιβολία .. Δεδομένου ότι η σύνδεση είναι με sql .. Πώς μπορώ να μετονομάσω στήλες!; Επειδή φέρνει το όνομα της στους τομείς της sql ..!
Ελπίζω και έχω καταλάβει ..
Σας ευχαριστούμε!
Πάω να σώσει ...
σε κάποιο σημείο θα ήταν χρήσιμο ...
Είναι ισχύει για το Excel 2007; Είχα προβλήματα με τις εξαγωγές για την ανάπτυξη, ότι ισχύει για παλαιότερες εκδόσεις, αλλά όχι για το 2007. Ευχαριστίες
Τεράστια πηγαίου κώδικα. σερβίρεται με καλά. q ήταν εδώ και καιρό.
Παρά το γεγονός ότι πρέπει επίσης να ecxel την εισαγωγή ενός πίνακα δεδομένων. αλλά θα μπορούσε να είναι το περιβάλλον σε ένα datagrid και στη συνέχεια την ενημέρωση των DataAdapter και αποδοχή αλλαγών στο DataTable θα αποθηκευτούν στο BD q ... Ελπίζω να μπορεί να βοηθήσει ή να βρει .. ευχαριστίες
Γεια σας ευχαριστώ πολύ! αυτή η εξαιρετική!
Αλλά αναρωτιέμαι όπου datagrid ορίζει ότι χρησιμοποιείται στην περίπτωση που είναι αρκετά DataGrid;
Στον πίνακα είστε για την πρόσκληση ...
* επιλέξτε από (όνομα του πίνακα)
Εάν θέλετε να καθορίσετε ποια πεδία θέλετε
επιλέξετε (πεδία, τα πεδία, τα πεδία) * από τον πίνακα
EJM
επιλέξετε το αυτοκίνητο, το χρώμα, έτος από το αυτοκίνητο
Έχω ένα πρόβλημα με αυτό το παράδειγμα να κάνω 2 λάθη στις μεταβλητές της συνεχούς και dr, μπορώ να κάνω για να το διορθώσω;
Γεια σας, δοκιμάστε το εξής:
Για κάθε dr Όπως DataRow Σε ds.Tables (0). Γραμμές και DataColumn Για κάθε συνεχούς Στο ds.Tables ως (0). Στήλες
Ελπίζω ότι αυτό έχει επιλυθεί. Χαιρετισμοί.
Hola.
chevere αυτό, αλλά ένα μέρος του ονόματος της στήλης δεν είναι πολύ λειτουργικό.
Θα ανεβάσετε στο blog μου ένα πολύ μικρότερο μέγεθος περιορισμούς και χωρίς κωδικό
jaysson.blogspot.com
έτοιμη και ανέβηκε το άρθρο
http://jaysson.blogspot.com/2010/06/columnas-es-excel.html
Καλό το άρθρο, αλλά έχω ένα πρόβλημα στον υπολογιστή μου με τα έργα του Excel 2007 ομαλά, αλλά με τους υπολογιστές με το Excel 2003 ή νωρίτερα, δεν λειτουργεί. Όποιος ξέρει αν το πρόβλημα των βιβλιοθηκών που έχουν εισαχθεί, από τότε που σημαίνει ότι οι εργασίες για κάθε excel, αλλά έχω συναντήσει αυτό το πρόβλημα.
Ας δούμε αν κάποιος μπορεί να λύσει την αμφιβολία.
Σας ευχαριστώ.
Καλή ...
Εξαιρετική θέση! Σας ευχαριστώ με βοήθησε πλήρη, αλλά έχω μια αμφιβολία .. Δεδομένου ότι η σύνδεση είναι με sql .. Πώς μπορώ να μετονομάσω στήλες!; Επειδή φέρνει το όνομα της στους τομείς της sql ..!
Ελπίζω και έχω καταλάβει ..
Σας ευχαριστούμε!
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
ΕΞΑΙΡΕΤΙΚΗ! .... ευχαριστώ τον αδελφό, και πήρε 3 ημέρες, με μία μονάδα για την εισαγωγή / εξαγωγή του Excel και τίποτα δεν ελειτούργησε .... αλλά με τη λύση σας βλέπω ξανά τα αστέρια ... χαιρετισμούς από Αρεκίπα! ..
Παρακαλώ. Χαίρομαι που χρησίμευσαν ως παράδειγμα.
γεια δικαιολογία για την αύξηση progressBar1; αλλά εγώ προσπαθώ να κάνω σε αυτό το μέρος blokie
Ο κωδικός αυτός με βοήθησε πολύ, γι 'αυτό συνεργάζεται με δύο σεντ μου:
Έχουν βελτιστοποιηθεί η "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). Ακριβώς όπως ένα σχόλιο για να το λάβουν αυτό υπόψη.
Ελισσαιέ
Όταν τρέχω την εφαρμογή τοπικών funcioana σωστά, αλλά όταν το ανεβάσετε σε έναν ιστοχώρο δεν παράγουν το Excel, αλλά δεν παίρνουν λάθος
Ψάχνω haciend γειωμένη σε SQL μου
όπως δεν έκανα, αλλά θα κάνω AJA
Χρειάζομαι βοήθεια για να προσπαθήσω να το κάνω κάθε τρόπο που είναι εδώ και παίρνω όλα λάθος
Χέρι, είστε η τέλεια μέγιστη funca.
[...] [...]
πολύ καλά, συγχαρητήρια είναι στην καλύτερη θέση που έχω διαβάσει και διαβουλεύσεις
Σας ευχαριστούμε! Ήταν πολύ χρήσιμο
Ει ο κώδικας δεν λειτουργεί για μένα σηματοδοτεί ένα da.Fill λάθη (DS)
Μπορώ να επισημάνω το σφάλμα δεν βρέθηκε SqlException
μπορείτε να με βοηθήσετε
ένα ερώτημα μπορεί να κάνει άμεση φόρτωση ερώτημα SQL για να υπερέχει;
εκ των προτέρων μέσω
Γεια σας φίλοι πρώτα απ 'όλα σας agradesco τη συμβολή σας.
Σημειώστε ότι έχω ένα πρόβλημα που δεν μπορείτε να βρείτε στην αναφορά που να αναφέρει, έχω εγκαταστήσει το Office 2010 και το οποίο δεν μπορεί να είναι το πρόβλημά μου.
agradeseria μερικές συμβουλές για να σας.
Γεια σας, πολύ καλή συμμετοχή είναι αυτό που έψαχνα ... αλλά όταν το τρέχω από το διακομιστή ανάπτυξης λειτουργεί τέλεια, αλλά όταν έχω πρόσβαση στο διαδίκτυο από έναν άλλο υπολογιστή δεν κάνει τίποτα ... κανένα λάθος, αλλά δεν καταγράφει τίποτα ...
Καθένας ξέρει πώς να το διορθώσω;
Σας ευχαριστώ πολύ, με βοήθησε το παράδειγμά σας ως βάση για τη δημιουργία μια λειτουργία που δημιουργεί με ένα αρχείο 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
Φέρνοντας ένα κομμάτι για το σκοπό αυτό, ο παρακάτω κώδικας δεν επιτρέπει τη χρήση της "Σειρά" να μην απαιτούν τη λειτουργία "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
Τέλος Ενότητα
κάποιος παρακαλώ να εξηγήσει την αύξηση progress1;