Automatisk eksport til Microsoft Excel DataTable

I dag vil jeg vise et eksempel, som har tjent mig i lang tid, og alligevel har jeg stadig bruge det.
Vi vil gøre et eksempel for at eksportere en DataTable til Excel fuld uanset antallet af kolonner eller rækker, der har.

Der kan være mange måder at gøre dette, men jeg finder det meget nyttigt, da denne metode virker for alle versioner af Excel. For compatilidad problemer med nyere versioner af Excel kun håndtere 256 kolonner.

Den første ting, vi behøver er at tilføje en henvisning til Microsoft.Office.Interop.Excel og vi gør som følger:

Importar referencia a Excel

Importer henvisning til Excel

Importar referencia Excel

Import Excel henvisning

Så har vi brug for en formular, en knap, DataGridView og fremskridt bar. Vi har set på billedet:

Formulario aplicación para exportar dataset a excel

Ansøgningsskema til at eksportere datasæt til Excel

Nu vil jeg vise alle koden er virkelig simpelt vigtigste er, at det tilpasser sig ethvert bord. Du vil være i stand til at genbruge uden problemer.

 Importen System.Data Import System.Data.SqlClient Public Class Form1 Import Microsoft.Office.Interop Private DS som New DataSet Private Sub Form1_Load (ByVal afsenderen som System.Object, ByVal e Som System.EventArgs) Håndterer MyBase.Load «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Opret forbindelse og fylde DataGridView «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim cnn As New SqlConnection ("Data Source = localhost \ SQLEXPRESS; Initial Butik = Northwind; Integrated Security = True") Dim da As New SqlDataAdapter ("Select * fra kunder", CNN) giver. Fyld (DS) DataGridView1.DataSource = ds.Tables (0) End Sub Private Sub btnExportar_Click (ByVal afsenderen som System.Object, ByVal e Som System.EventArgs) Håndterer btnExportar.Click «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Opret Excel-objekt' / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim Dim m_Excel objLibroExcel Dim objHojaExcel m_Excel = CreateObject ("Excel.Application") m_Excel.Workbooks.Add objLibroExcel = () = objLibroExcel.Worksheets objHojaExcel (1) objHojaExcel.Name = "kunder" objHojaExcel.Visible = Excel . XlSheetVisibility.xlSheetVisible objHojaExcel.Activate () '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / definerer to variabler til at kontrollere række og kolonne' / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim rækken As Integer = 1 Dim kolonne As Integer = 1 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Vi sætter linjen med kolonneoverskrifter «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / objHojaExcel.Range ("A1"). Vælg () For hver fm ds.Tables (0). Kolonner objHojaExcel.Range (FeltNavn (kolonne) & 1). Værdi = dc.ColumnName kolonne + = 1 Næste p + = 1 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Vi formatere titler rækken «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim Som Excel.Range = objHojaExcel.Range objRango ("A1". & FeltNavn (ds.Tables (0) Columns.Count) & "1") objRango.Font . Fed = 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 = '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Indlæs alle rækker i DataTable «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ProgressBar1.Maximum = ds.Tables (0). Rows.Count ProgressBar1.Value kolonne = 1 = 0 For hver dr I ds.Tables (0). Rækker kolonne = 1 for hver fm ds.Tables (0). Søjler objHojaExcel.Range (FeltNavn (kolonne) og række). Værdi = dr (dc.ColumnName) søjle + = 1 Næste række + = 1 + = 1 Næste ProgressBar1.Value '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Vi tilpasser bredden automatisk' / / for alle kolonner, der anvendes '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / objRango = objHojaExcel.Range ("A1:".. og FeltNavn (ds.Tables (0) Columns.Count) og ds.Tables (0) Rows.Count.ToString) objRango.Select () objRango . Columns.AutoFit () '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /' / / Vi fortæller Excel til at vise '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / MsgBox ("Eksporter til Excel Complete" , MsgBoxStyle.Information ". :: solovb.net ::.") m_Excel.Visible = True End Sub Public Function FeltNavn (ByVal nummer As Integer) As String Dim kolonne (256) As String kolonne (1) = "A" kolonnen (2) = "B" søjle (3) = "C"-kolonnen (4) = "D" søjle (5) = "E"-søjlen (6) = "F" kolonne (7) = "G"-søjle ( 8) = "H"-søjle (9) = "I" søjle (10) = "J"-søjle (11) = "K" kolonne (12) = "L"-søjle (13) = "M"-søjle (14) = "N"-søjle (15) = "W"-søjle (16) = "P"-søjle (17) = "Q"-søjle (18) = "R"-søjle (19) = "S"-søjle (20) = " T "-søjle (21) =" U "-søjle (22) =" V "-søjle (23) =" W "-søjle (24) =" X "-søjle (25) =" Y "-søjle (26) =" Z " kolonne (27) = "AA"-søjle (28) = "AB" kolonnen (29) = "AC" kolonnen (30) = "AD" kolonne (31) = "AE" kolonne (32) = "AF" kolonne ( 33) = "AG" Kolonne (34) = "AH" kolonne (35) = "Antal" kolonnen (36) = "AJ" kolonne (37) = "AK" kolonne (38) = "TIL" kolonnen (39) = "AM" kolonnen (40) = "NA" kolonne (41) = "AO" kolonnen (42) = "AP" kolonnen (43) = "AQ" kolonne (44) = "RA"-søjle (45) = " AS "kolonne (46) =" AT "kolonnen (47) =" AU "kolonne (48) =" AV "kolonne (49) =" AW "kolonne (50) =" AX "kolonne (51) =" AY " kolonne (52) = "AZ" kolonnen (53) = "BA" kolonne (54) = "BB" kolonne (55) = "BC" kolonne (56) = "BD" kolonne (57) = "BE" kolonnen ( 58) = "BF" kolonnen (59) = "BG" kolonnen (60) = "BH" kolonne (61) = "BI" kolonnen (62) = "BJ" kolonne (63) = "BK" kolonnen (64) = "BL" kolonne (65) = "BM" kolonne (66) = "BN" kolonne (67) = "BO" kolonne (68) = "BP" kolonne (69) = "BQ" kolonne (70) = " BR "kolonne (71) =" BS "kolonne (72) =" BT "kolonne (73) =" BU "kolonne (74) =" BV "kolonne (75) =" BW "kolonne (76) =" BX " kolonne (77) = "BY" kolonnen (78) = "BZ" kolonne (79) = "CA" kolonnen (80) = "CB" kolonne (81) = "CC" kolonne (82) = "CD" kolonnen ( 83) = "CE" kolonnen (84) = "CF" kolonnen (85) = "CG" kolonne (86) = "CH" kolonnen (87) = "CI" kolonne (88) = "CJ" kolonne (89) = "CK" kolonne (90) = "CL" kolonnen (91) = "CM" kolonnen (92) = "CN" kolonne (93) = "CO" kolonnen (94) = "CP" kolonnen (95) = " CQ "kolonne (96) =" CR "kolonnen (97) =" CS "kolonnen (98) =" CT "kolonnen (99) =" CU "kolonne (100) =" CV "kolonne (101) =" CW " kolonne (102) = "CX" kolonnen (103) = "CY" kolonnen (104) = "CZ" kolonnen (105) = "DA" kolonnen (106) = "DB" kolonnen (107) = "DC" kolonnen ( 108) = "DD" kolonnen (109) = "DE" kolonnen (110) = "DF" kolonnen (111) = "GD" kolonnen (112) = "DH" kolonnen (113) = "ID" kolonnen (114) = "DJ" kolonnen (115) = "DK" kolonnen (116) = "DL" kolonnen (117) = "DM" kolonnen (118) = "DN" kolonnen (119) = "gøre" kolonnen (120) = " DP "kolonne (121) =" DQ "kolonnen (122) =" DR "kolonnen (123) =" DS "kolonnen (124) =" DT "kolonnen (125) =" DU "kolonnen (126) =" DV " kolonne (127) = "DW" kolonnen (128) = "DX" kolonnen (129) = "DY" kolonnen (130) = "DZ" kolonnen (131) = "EA" kolonnen (132) = "EB" kolonnen ( 133) = "EF" kolonnen (134) = "ED" kolonnen (135) = "EE" kolonnen (136) = "EF" kolonnen (137) = "EG" kolonnen (138) = "EH" kolonnen (139) = "EI" kolonnen (140) = "EJ" kolonnen (141) = "EK" kolonnen (142) = "EL" kolonnen (143) = "MS" kolonnen (144) = "IN" kolonnen (145) = " EO "kolonne (146) =" EP "kolonne (147) =" EQ "kolonne (148) =" ER "-søjle (149) =" ES "-kolonne (150) =" ET "kolonne (151) =" EU " kolonne (152) = "EV" kolonnen (153) = "EW" kolonnen (154) = "EX" kolonnen (155) = "EY" kolonnen (156) = "EZ" kolonnen (157) = "FA" kolonnen ( 158) = "FB" kolonnen (159) = "FC" kolonnen (160) = "FD" kolonnen (161) = "FE" kolonnen (162) = "FF" kolonnen (163) = "FG" kolonnen (164) = "FH" kolonnen (165) = "FI" kolonnen (166) = "FJ" kolonnen (167) = "FK" kolonnen (168) = "FL" kolonnen (169) = "FM" kolonnen (170) = " FN "kolonnen (171) =" FO "kolonnen (172) =" FP "kolonnen (173) =" CF "kolonnen (174) =" FR "kolonnen (175) =" FS "kolonnen (176) =" FT " kolonne (177) = "FU" kolonnen (178) = "FV" kolonnen (179) = "FW" kolonnen (180) = "FX" kolonnen (181) = "FY" kolonnen (182) = "FZ" kolonnen ( 183) = "GA" kolonnen (184) = "GB" kolonnen (185) = "GC" kolonnen (186) = "GD" kolonnen (187) = "GE" kolonnen (188) = "GF" kolonnen (189) = "GG" kolonne (190) = "GH" kolonne (191) = "GI" kolonne (192) = "GJ" kolonne (193) = "GK" kolonne (194) = "GL" kolonne (195) = " GM "kolonnen (196) =" GN "kolonnen (197) =" GO "kolonnen (198) =" GP "kolonnen (199) =" GQ "kolonnen (200) =" GR "kolonnen (201) =" GS " kolonne (202) = "GT" kolonnen (203) = "GU" kolonnen (204) = "GV" kolonnen (205) = "GW" kolonnen (206) = "GX" kolonnen (207) = "GY" kolonnen ( 208) = "GZ" kolonnen (209) = "HA" kolonnen (210) = "HB" kolonnen (211) = "HC" kolonnen (212) = "HD" kolonnen (213) = "han" kolonnen (214) = "HF" kolonnen (215) = "HG" kolonnen (216) = "HH" kolonnen (217) = "HI" kolonnen (218) = "HJ" kolonnen (219) = "HK" kolonnen (220) = " HL "kolonnen (221) =" HM "kolonnen (222) =" HN "kolonnen (223) =" HO "kolonnen (224) =" HP "kolonnen (225) =" HQ "kolonnen (226) =" HR " kolonne (227) = "HS" kolonne (228) = "HT" kolonne (229) = "HU" kolonne (230) = "HV" kolonne (231) = "HW" kolonne (232) = "H"-søjle ( 233) = "HY" kolonne (234) = "Hz" kolonne (235) = "IA" kolonne (236) = "IB" kolonne (237) = "IC" kolonne (238) = "ID"-søjle (239) = "IE" kolonne (240) = "IF" kolonne (241) = "IG" kolonne (242) = "IH" kolonne (243) = "II" kolonne (244) = "inkjet"-søjle (245) = " IK "kolonnen (246) =" IL "kolonnen (247) =" IM "kolonnen (248) =" IN "kolonnen (249) =" IO "kolonnen (250) =" IP "kolonnen (251) =" IQ " kolonne (252) = "R" kolonnen (253) = "er" kolonnen (254) = "IT" kolonnen (255) = "UI" kolonnen (256) = "IV" Return kolonne (antal) End Function End Class 

Denne metode har tjent mig godt, og jeg håber, at du også gør det ... så lad dine kommentarer.

34 Responses to "automatisk Eksport DataTable til Microsoft Excel"

  1. Bitacoras.com siger:

    Information Bitacoras.com ...

    Rate i Bitacoras.com: Hej, I dag vil jeg vise et eksempel, som har tjent mig i lang tid, og alligevel har jeg stadig bruge det. Vi vil gøre et eksempel for at eksportere en DataTable til Excel fuld uanset antallet af kolonner eller rækker, Teng .....

    • Carlos Linares siger:

      God ...

      Fremragende indlæg! Tak fordi du hjalp mig fuld, men jeg har en tvivl om .. Da forbindelsen er med sql .. Hvordan omdøber jeg søjler!? Fordi det bringer navnet på områderne sql ..!

      Jeg håber og jeg har forstået ..

      Tak!

  2. Denko siger:

    Jeg har tænkt mig at spare ...
    på et tidspunkt vil det være nyttigt ...

  3. Victor siger:

    Er det gælder for Excel 2007? Jeg har haft problemer med eksporten at udvikle, at det er gyldigt til tidligere versioner, men ikke for 2007. Tak

  4. John siger:

    Enorm kildekode. tjent mig godt. q det var længe siden.

  5. John siger:

    Selv har også brug for ecxel import af en datatabel. men kunne være miljømæssigt en DataGrid, og derefter opdatere DataAdapter og acceptere ændringer i DataTable vil blive gemt i q BD ... Jeg håber, at jeg kan hjælpe eller at finde .. tak

  6. jose siger:

    Hej Mange tak! denne fremragende!
    Men jeg spekulerer på, hvor DataGrid specificerer, der anvendes i tilfælde, der er flere Datagrid?

    • Carlos Linares siger:

      På bordet du er på opkald ...

      vælg * fra (tabel navn)

      Hvis du ønsker at angive, hvilke felter du ønsker

      Vælg (marker, marker, marker), * fra tabel
      ejm
      vælge bil, farve, år fra bil

  7. Beto sagde:

    Jeg har et problem med dette eksempel jeg 2 fejl i variabler fm og dr, kan jeg gøre for at ordne det?

    • Elisa siger:

      Hej, prøv dette:
      For hver DR som DataRow I ds.Tables (0). Rækker og DataColumn For hver fm ds.Tables som (0). Søjler

      Jeg håber, at dette er løst. Greetings.

  8. Jason siger:

    Hola.
    denne chevere, men en del af kolonnen navn er ikke meget funktionel.
    Jeg vil uploade til min blog en meget mindre kodestørrelse begrænsninger og uden

    jaysson.blogspot.com

  9. Rodrigo siger:

    God artikel, men jeg har et problem på min computer med Excel 2007 fungerer gnidningsløst, men med computere med Excel 2003 eller tidligere ikke virker. Alle ved, hvis problemet med biblioteker, der importeres, da du antyder, at værker for enhver Excel, men jeg har stødt på dette problem.

    Lad os se om nogen kan løse tvivl.
    Tak.

  10. Carlos Linares siger:

    God ...

    Fremragende indlæg! Tak fordi du hjalp mig fuld, men jeg har en tvivl om .. Da forbindelsen er med sql .. Hvordan omdøber jeg søjler!? Fordi det bringer navnet på områderne sql ..!

    Jeg håber og jeg har forstået ..

    Tak!

  11. Alexander siger:

    Public Sub ExportarDatosExcel (ByVal DataGridView1 Som DataGridView, ByVal titel As String)
    Som New Excel.Application Dim m_Excel
    m_Excel.Cursor = Excel.XlMousePointer.xlWait
    m_Excel.Visible = True
    Som Excel.Workbook Dim objLibroExcel = m_Excel.Workbooks.Add
    Som Excel.Worksheet Dim objHojaExcel = objLibroExcel.Worksheets (1)
    Med objHojaExcel
    . Visible = Excel.XlSheetVisibility.xlSheetVisible
    . Aktiver ()
    "Header
    . Range ("A1: L1"). Merge ()
    . Range ("A1: L1"). Value = "INSTITUT ARGENCAF"
    . Range ("A1: L1"). Font.Bold = True
    . Range ("A1: L1"). Font.Size = 15
    "Tuft
    . Range ("A2: L2"). Merge ()
    . Range ("A2: L2"). Value = titel
    . Range ("A2: L2"). Font.Bold = True
    . Range ("A2: L2"). Font.Size = 12

    Const primeraLetra Som Char = "A"
    Const foersteTal Som Short = 3
    Dim brev Som Char, Char som UltimaLetra
    Dim Antal As Integer, UltimoNumero As Integer
    Dim Som Byte = Asc cod_letra (primeraLetra) - 1
    Dim As String = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator sepDec
    Dim As String = Application.CurrentCulture.NumberFormat.NumberGroupSeparator sepMil
    "Indstil format af søjlerne i datter af beregningen
    StrColumna Dim As String = ""
    LetraIzq Dim As String = ""
    Dim Som Byte = Asc cod_LetraIzq (primeraLetra) - 1
    Brev = primeraLetra
    Nummer = foersteTal
    Som Excel.Range Dim objCelda
    For hver C som DataGridViewColumn I DataGridView1.Columns
    Så hvis c.Visible
    Hvis Brev = "Z" Så
    Brev = primeraLetra
    cod_letra = Asc (primeraLetra)
    cod_LetraIzq + = 1
    LetraIzq = CHR (cod_LetraIzq)
    Else
    cod_letra + = 1
    Skrivelse = CHR (cod_letra)
    End If
    strColumna = LetraIzq + Lyrics + Numero.ToString
    objCelda =. Range (strColumna, Type.Missing)
    objCelda.Value = c.HeaderText
    objCelda.EntireColumn.Font.Size = 8
    'ObjCelda.EntireColumn.NumberFormat = c.DefaultCellStyle.Format
    Hvis c.ValueType Er getType (Decimal) OrElse c.ValueType Er getType (Double) Derefter
    objCelda.EntireColumn.NumberFormat = "#" + sepMil + "0" + sepDec + "00"
    End If
    End If
    Næste

    Som Excel.Range Dim objRangoEncab =. Range (primeraLetra + Numero.ToString og LetraIzq + Lyrics + Numero.ToString)
    objRangoEncab.BorderAround (1, Excel.XlBorderWeight.xlMedium)
    UltimaLetra = Send
    Dim As String = LetraIzq UltimaLetraIzq

    For indlæsningstid DATA
    Dim i As Integer = Nummer + 1

    For hver i Liste Som DataGridViewRow DataGridView1.Rows
    LetraIzq = ""
    cod_LetraIzq = Asc (primeraLetra) - 1
    Brev = primeraLetra
    cod_letra = Asc (primeraLetra) - 1
    For hver C som DataGridViewColumn I DataGridView1.Columns
    Så hvis c.Visible
    Hvis Brev = "Z" Så
    Brev = primeraLetra
    cod_letra = Asc (primeraLetra)
    cod_LetraIzq + = 1
    LetraIzq = CHR (cod_LetraIzq)
    Else
    cod_letra + = 1
    Skrivelse = CHR (cod_letra)
    End If
    strColumna = LetraIzq + Lyrics
    "Her skal belastningen
    Celler (I, strColumna) = IIf (IsDBNull (reg.ToString), "", reg.Cells (c.Index). Værdi)
    '. Celler (I, strColumna) = IIf (IsDBNull (reg. (c.DataPropertyName)), c.DefaultCellStyle.NullValue, reg (c.DataPropertyName))
    ". Range (strColumna + i, strColumna + i). I ()

    End If
    Næste
    Som Excel.Range Dim objRangoReg =. Range (primeraLetra + i.ToString, i.ToString strColumna +)
    objRangoReg.Rows.BorderAround ()
    objRangoReg.Select ()
    i + = 1
    Næste
    UltimoNumero = i

    "Tegn linjer af søjlerne
    LetraIzq = ""
    cod_LetraIzq = Asc ("A")
    cod_letra = Asc (primeraLetra)
    Brev = primeraLetra
    For hver C som DataGridViewColumn I DataGridView1.Columns
    Så hvis c.Visible
    . objCelda = Range (LetraIzq + Lyrics + primerNumero.ToString og LetraIzq + Lyrics + (UltimoNumero -. 1) toString)
    objCelda.BorderAround ()
    Hvis Brev = "Z" Så
    Brev = primeraLetra
    cod_letra = Asc (primeraLetra)
    LetraIzq = CHR (cod_LetraIzq)
    cod_LetraIzq + = 1
    Else
    cod_letra + = 1
    Skrivelse = CHR (cod_letra)
    End If
    End If
    Næste

    'Tegn den tykke ydre grænse
    Som Excel.Range Dim objRango = Range. (PrimeraLetra + primerNumero.ToString, UltimaLetra UltimaLetraIzq + + (UltimoNumero -. 1) toString)
    objRango.Select ()
    objRango.Columns.AutoFit ()
    objRango.Columns.BorderAround (1, Excel.XlBorderWeight.xlMedium)
    End With

    m_Excel.Cursor = Excel.XlMousePointer.xlDefault
    End Sub

    ToolStripButton2_Click_1 Private Sub (ByVal afsender Som System.Object, ByVal e Som System.EventArgs) Håndtag ToolStripButton2.Click
    ExportarDatosExcel (DataGridView1, "eksport")
    End Sub

  12. JuanPeople siger:

    EXCELLENT! .... tak bror, og tog 3 dage med et modul til import / eksport Excel og intet fungerede .... men med din løsning ser jeg igen stjernerne ... hilsener fra Arequipa:! ..

  13. TECKNOCK siger:

    Denne kode hjulpet mig meget, så jeg samarbejder med mine to cents:

    Har optimeret "FeltNavn" sandsynligvis ahsta ZZ-søjle (702 et al.)

    Her vil jeg give dig koden:

    Public Function FeltNavn (ByVal nummer As Integer) As String
    Dim kolonne (703) As String

    Kolonnen (1) = "A"
    kolonnen (2) = "B"
    kolonne (3) = "C"
    kolonnen (4) = "D"
    kolonne (5) = "E"
    kolonne (6) = "F"
    kolonne (7) = "G"
    kolonne (8) = "H"
    kolonne (9) = "I"
    kolonne (10) = "J"
    kolonne (11) = "K"
    kolonne (12) = "L"
    kolonne (13) = "M"
    kolonne (14) = "N"
    kolonne (15) = "O"
    kolonne (16) = "P"
    kolonne (17) = "Q"
    kolonne (18) = "R"
    kolonne (19) = "S"
    kolonne (20) = "T"
    kolonne (21) = "U"
    kolonne (22) = "V"
    kolonnen (23) = "W"
    kolonne (24) = "X"
    kolonne (25) = "Y"
    kolonnen (26) = "Z"

    Dim i = 27
    For Ltr1 = 1 til 26
    For Ltr2 = 1 til 26
    kolonne (i) = søjle (Ltr1) og søjlen (Ltr2)
    i + = 1
    Næste
    Næste

    Retur-søjle (nummer)
    End Function

    • Elisa siger:

      TECKNOCK, mange tak for hjælpen!, Men husk på, at hvis den bog, vi skaber, er kompatibel med Excel 97-2003 maksimalt tilladte kolonner er 256 (til IV). Ligesom en kommentar til at tage højde for dette.

      Elisa

  14. raysip siger:

    Når jeg kører lokal anvendelse funcioana korrekt, men når jeg uploader den på en hjemmeside ikke generere Excel, men får ikke fejl

  15. Aderson siger:

    Jeg søger haciend en jordet til min sql

    ikke som jeg gjorde, men jeg vil gøre AJA

  16. Paulus siger:

    Jeg har brug for hjælp forsøge at gøre det hver måde du er her, og jeg får fejl alle

  17. JOHN siger:

    Hand, du er den perfekte funca maksimum.

  18. Neji siger:

    meget god, er tillykke med det bedste indlæg jeg har læst og hørt

  19. Patricia siger:

    Tak! Det var meget nyttigt

  20. f.delgado siger:

    Hey koden virker ikke på mig markerer en da.Fill fejl (ds)

    Jeg markere fejlen blev ikke fundet SQLException

    kan du hjælpe mig

  21. JAV siger:

    et spørgsmål kan komme i direkte belastning sql query til Excel?

    forhånd gennem

  22. Delfino Morales siger:

    Hej venner, først og fremmest du agradesco dit bidrag.
    Bemærk, at jeg har et problem jeg kan ikke finde den reference, du angiver, jeg har installeret Office 2010, og som ikke kan være mit problem.
    agradeseria nogle råd til dig.

  23. America siger:

    Hej, meget godt bidrag er, hvad jeg ledte efter ... men når jeg køre det fra udviklingen serveren fungerer perfekt, men når jeg få adgang til internettet fra en anden pc gør intet ... ingen fejl men ikke registrerer noget ...

    Alle ved, hvordan du løser det?

  24. Azofeifa Hernan siger:

    Tak meget, hjalp mig med dit eksempel som grundlag for at generere en funktion, der genererer mig en Excel-fil, men direkte fra de værdier, der er lagret i et gitter er, hvad dejor tilfældet er nyttigt for nogen

    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Vi sætter linjen med kolonneoverskrifter
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objHojaExcel.Range ("A1"). Vælg ()
    Dim Jeg As Integer = 0
    Lncol Dim As Integer = 1
    For hver fm dgvSocios.Columns

    Hvis dgvSocios.Columns.Item (I). Visible = True Derefter
    objHojaExcel.Range (FeltNavn (lncol) og 1). værdi = dgvSocios.Columns.Item (I). HeaderText
    lncol + = 1
    End If
    I + = 1
    Næste
    p + = 1

    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Vi formatere rækkeoverskrifterne
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Som Excel.Range Dim objRango = objHojaExcel.Range ("A1:" & FeltNavn (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

    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Indlæs alle rækker i DataTable
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    ProgressBar1.Maximum = dgvSocios.Rows.Count
    søjle = 0
    ProgressBar1.Value = 0
    ProgressBar1.Visible = True
    Lnfila Dim As Integer = 0
    I = 1
    Hver DR dgvSocios.Rows
    søjle = 0

    For hver fm dgvSocios.Columns
    Hvis dgvSocios.Columns.Item (kolonne). Visible = True Derefter
    objHojaExcel.Range (FeltNavn (I) & p). Værdi = dgvSocios.Item (kolonne, lnfila). Value.ToString
    I + = 1
    End If
    Kolonnen + = 1
    Næste
    lnfila + = 1
    p + = 1
    ProgressBar1.Value + = 1
    Næste

    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Vi tilpasser bredden automatisk
    '/ / Fra alle de anvendte kolonner
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objRango = objHojaExcel.Range ("A1:" & FeltNavn (lncol) & (lnfila + 1) toString.)
    objRango.Select ()
    objRango.Columns.AutoFit ()

    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Vi fortæller Excel til at vise
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    MsgBox ("Eksporter til Excel Complete", MsgBoxStyle.Information ". :: Solovb.net ::.")
    m_Excel.Visible = True

  25. Pako siger:

    Bringe lidt for denne funktion, følgende kode forhindrer brugen af ​​"Range" til ikke at kræve funktionen "FeltNavn"

    Regards,

    Import System.Data
    Import System.Data.SqlClient
    Import Microsoft.Office.Interop.Excel
    Offentlig Modul mutil
    Public Sub ExportarDtToExcel (ByVal dt som System.Data.DataTable, ByVal titel As String)
    Som Excel.Application Dim m_Excel
    Som Excel.Workbook Dim objLibroExcel
    Som Arbejdsark Dim objHojaExcel
    Prøv
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Opret Excel-objekt
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    m_Excel = CreateObject ("Excel.Application")
    m_Excel.Workbooks.Add objLibroExcel = ()
    objHojaExcel = objLibroExcel.Worksheets (1)
    objHojaExcel.Name = Titel
    objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible
    objHojaExcel.Activate ()

    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Definer to variabler til at kontrollere række og kolonne
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Dim række As Integer = 1
    Dim søjle som Integer = 1

    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Vi sætter linjen med kolonneoverskrifter
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    'ObjHojaExcel.Range ("A1"). Vælg ()

    objHojaExcel.Cells (række, kolonne). SELECT ()
    For hver fm Dt.Columns
    objHojaExcel.Cells (række, søjle). Værdi = dc.ColumnName
    Kolonnen + = 1
    Næste
    p + = 1

    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Vi formatere rækkeoverskrifterne
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Som Excel.Range = dim 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

    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Indlæs alle rækker i DataTable
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

    søjle = 1

    Hver DR Dt.Rows
    søjle = 1
    For hver fm Dt.Columns
    objHojaExcel.Cells (række, søjle). Værdi = dr (dc.ColumnName)
    Kolonnen + = 1
    Næste
    p + = 1

    Næste

    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Vi tilpasser bredden automatisk
    '/ / Fra alle de anvendte kolonner
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objHojaExcel.Cells objRango = (1, Dt.Columns.Count)
    objRango.Select ()
    objRango.Columns.AutoFit ()

    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Vi fortæller Excel til at vise
    «/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    MsgBox ("Eksporter til Excel Complete" MsgBoxStyle.Information, "Export")
    m_Excel.Visible = True

    Fang ex Som undtagelse

    MsgBox (ex.ToString)

    Endelig

    objHojaExcel = Nothing
    objLibroExcel = Nothing
    m_Excel = Nothing

    Afslut Prøv
    End Sub

    Endemodul

  26. Pamela fortæller:

    nogen venligst forklare den stigende progress1?

Kommentar