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:

Importer henvisning til Excel

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

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.
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 .....
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!
Jeg har tænkt mig at spare ...
på et tidspunkt vil det være nyttigt ...
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
Enorm kildekode. tjent mig godt. q det var længe siden.
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
Hej Mange tak! denne fremragende!
Men jeg spekulerer på, hvor DataGrid specificerer, der anvendes i tilfælde, der er flere Datagrid?
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
Jeg har et problem med dette eksempel jeg 2 fejl i variabler fm og dr, kan jeg gøre for at ordne det?
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.
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
klar og gik op artiklen
http://jaysson.blogspot.com/2010/06/columnas-es-excel.html
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.
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!
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
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:! ..
Selv tak. Jeg er glad for du tjent som et eksempel.
hej undskyld for den stigende progressBar1? men jeg forsøger at gøre i denne del blokie
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
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
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
Jeg søger haciend en jordet til min sql
ikke som jeg gjorde, men jeg vil gøre AJA
Jeg har brug for hjælp forsøge at gøre det hver måde du er her, og jeg får fejl alle
Hand, du er den perfekte funca maksimum.
[...] [...]
meget god, er tillykke med det bedste indlæg jeg har læst og hørt
Tak! Det var meget nyttigt
Hey koden virker ikke på mig markerer en da.Fill fejl (ds)
Jeg markere fejlen blev ikke fundet SQLException
kan du hjælpe mig
et spørgsmål kan komme i direkte belastning sql query til Excel?
forhånd gennem
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.
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?
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
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
nogen venligst forklare den stigende progress1?