Vandaag wil ik een voorbeeld dat me heeft gediend voor een lange tijd en toch gebruik ik nog steeds laten zien.
We zullen een voorbeeld voor een DataTable te exporteren naar Excel volledig onafhankelijk van het aantal kolommen of rijen die hebben.
Er kunnen vele manieren om dit te doen, maar ik vind het echt nuttig omdat deze methode werkt voor alle versies van Excel. Voor compatilidad problemen met nieuwere versies van Excel alleen omgaan met 256 kolommen.
Het eerste wat we nodig hebben is het toevoegen van een verwijzing naar Microsoft.Office.Interop.Excel en dat doen we als volgt:

Importeer verwijzing naar Excel

Import Excel referentie
Dan moeten we een formulier, een knop, DataGridView en voortgangsbalk. We kunnen zoals te zien in de foto:

Aanvraagformulier om dataset exporteren naar Excel
Nu wil ik laten zien dat de code is heel eenvoudig belangrijkste is dat het zich aanpast aan elke tafel. U kunnen opnieuw zonder problemen.
Imports System.Data Imports System.Data.SqlClient Public Class Form1 Invoer Microsoft.Office.Interop prive ds As New DataSet Private Form1_Load Sub (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Maak de verbinding en vul de DataGridView "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim cnn As New SqlConnection ("Data Source = localhost \ SQLExpress; Initial Catalog = Noordenwind, Integrated Security = True") Dim da As New SqlDataAdapter ("Select * van klanten", CNN) geeft. Vul (ds) DataGridView1.DataSource = ds.Tables (0) End Sub Private Sub btnExportar_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExportar.Click "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Maak de Excel Object' / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim Dim m_Excel objLibroExcel Dim objHojaExcel m_Excel = CreateObject ("Excel.Application") m_Excel.Workbooks.Add objLibroExcel = () = objLibroExcel.Worksheets objHojaExcel (1) objHojaExcel.Name = "Klanten" objHojaExcel.Visible = Excel . XlSheetVisibility.xlSheetVisible objHojaExcel.Activate () "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / define twee variabelen op rij en kolom te beheersen "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim rij As Integer = 1 Dim column As Integer = 1 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / We zetten de regel met de kolomkoppen "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / objHojaExcel.Range ("A1"). Selecteer met () Voor elke v In ds.Tables (0). Columns objHojaExcel.Range (kolomnaam (kolom) & 1). Value = dc.ColumnName kolom + = 1 Next rij + = 1 "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / We formatteren van de titels rij' / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim als Excel.Range = objHojaExcel.Range objRango ("A1:". & kolomnaam (ds.Tables (0) Columns.Count) & "1") objRango.Font . Vet = 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 = '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Laad alle rijen in de gegevenstabel "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ProgressBar1.Maximum = ds.Tables (0). Rows.Count ProgressBar1.Value kolom = 1 = 0 Voor elke dr. In ds.Tables (0). Rijen kolom = 1 voor elke v in ds.Tables (0). Columns objHojaExcel.Range (kolomnaam (kolom) & rij). Value = dr. (dc.ColumnName) kolom + = 1 Volgende rij + = 1 + = 1 Next ProgressBar1.Value "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / We passen automatisch de breedte "/ / voor alle kolommen gebruikt" / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / objRango = objHojaExcel.Range ("A1:".. & kolomnaam (ds.Tables (0) Columns.Count) & ds.Tables (0) Rows.Count.ToString) objRango.Select () objRango . Columns.AutoFit () "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / We vertellen Excel om te laten zien "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / MsgBox (" Export naar Excel Complete " , MsgBoxStyle.Information, ". :: solovb.net ::.") m_Excel.Visible = True End Sub Public Function kolomnaam (ByVal aantal As Integer) As String Dim kolom (256) As String kolom (1) = "A" kolom (2) = "B" stijl (3) = "C" kolom (4) = "D" stijl (5) = "E" kolom (6) = "F" kolom (7) = "G" kolom ( 8) = "H" kolom (9) = "I" kolom (10) = "J" kolom (11) = "K" kolom (12) = "L" kolom (13) = "M" kolom (14) = "N" kolom (15) = "W" kolom (16) = "P" kolom (17) = "Q" kolom (18) = "R" kolom (19) = "S" kolom (20) = " T '(21) = "U" kolom (22) = "V" kolom (23) = "W" kolom (24) = "X" kolom (25) = "Y" kolom (26) = "Z" kolom (27) = "AA" kolom (28) = "AB" kolom (29) = "AC" kolom (30) = "AD" kolom (31) = "AE" kolom (32) = "AF" kolom ( 33) = "AG" Column (34) = "AH" kolom (35) = "Nummer" kolom (36) = "AJ" kolom (37) = "AK" kolom (38) = "TO" kolom (39) = "AM" kolom (40) = "NA" kolom (41) = "AO" kolom (42) = "AP" kolom (43) = "AQ" kolom (44) = "RA" kolom (45) = " AS "kolom (46) =" AT "kolom (47) =" AU "kolom (48) =" AV "kolom (49) =" AW "kolom (50) =" AX "kolom (51) =" AY " kolom (52) = "AZ" kolom (53) = "BA" kolom (54) = "VO" kolom (55) = "BC" kolom (56) = "BD" kolom (57) = "BE" kolom ( 58) = "BF" kolom (59) = "BG" kolom (60) = "BH" kolom (61) = "BI" kolom (62) = "BJ" kolom (63) = "BK 'kolom (64) = "BL" kolom (65) = "BM" kolom (66) = "BN" kolom (67) = "BO" kolom (68) = "BP" kolom (69) = "BQ" kolom (70) = " BR "kolom (71) =" BS "kolom (72) =" BT "kolom (73) =" BU "kolom (74) =" BV "kolom (75) =" BW "kolom (76) =" BX " kolom (77) = "DOOR" kolom (78) = "BZ" kolom (79) = "CA" kolom (80) = "CB" kolom (81) = "CC" kolom (82) = "CD" kolom ( 83) = "CE" kolom (84) = "CF" kolom (85) = "CG" kolom (86) = "CH" kolom (87) = "CI" kolom (88) = "CJ" kolom (89) = "CK" kolom (90) = "CL" kolom (91) = "CM" kolom (92) = "CN" kolom (93) = "CO" kolom (94) = "CP" kolom (95) = " CQ "kolom (96) =" CR "kolom (97) =" CS "kolom (98) =" CT "kolom (99) =" CU "kolom (100) =" CV "kolom (101) =" CW " kolom (102) = "CX" kolom (103) = "CY" kolom (104) = "CZ" kolom (105) = "DA" kolom (106) = "DB" kolom (107) = "DC" kolom ( 108) = "L" kolom (109) = "DE" kolom (110) = "DF" kolom (111) = "DG" kolom (112) = "DH" kolom (113) = "ID" kolom (114) = "DJ" kolom (115) = "DK" kolom (116) = "DL" kolom (117) = "DM" kolom (118) = "DN" kolom (119) = "DO" kolom (120) = " DP "kolom (121) =" DQ "kolom (122) =" DR "kolom (123) =" DS "kolom (124) =" DT "kolom (125) =" DU "kolom (126) =" DV " kolom (127) = "DW" kolom (128) = "DX" kolom (129) = "DY" kolom (130) = "DZ" kolom (131) = "EA" kolom (132) = "EB" kolom ( 133) = "EG" kolom (134) = "ED" kolom (135) = "EE" kolom (136) = "EF" kolom (137) = "EG" kolom (138) = "EH" kolom (139) = "EI" kolom (140) = "EJ" kolom (141) = "EK" kolom (142) = "EL" kolom (143) = "MS" kolom (144) = "IN" kolom (145) = " EO "kolom (146) =" EP "kolom (147) =" EQ "kolom (148) =" ER "kolom (149) =" ES "kolom (150) =" ET "kolom (151) =" EU " kolom (152) = "ES" kolom (153) = "EW" kolom (154) = "EX" kolom (155) = "EY" kolom (156) = "EZ" kolom (157) = 'FA' kolom ( 158) = "FB" kolom (159) = "FC" kolom (160) = "FD" kolom (161) = "FE" kolom (162) = "FF" kolom (163) = "FG" kolom (164) = "FH" kolom (165) = "FI" kolom (166) = "FJ" kolom (167) = "FK" kolom (168) = "FL" kolom (169) = "FM" kolom (170) = " FN "kolom (171) =" FO "kolom (172) =" FP "kolom (173) =" CF "kolom (174) =" FR "kolom (175) =" FS "kolom (176) =" FT ' kolom (177) = "FU" kolom (178) = "FV" kolom (179) = "FW" kolom (180) = "FX" kolom (181) = "BJ" kolom (182) = "FZ" kolom ( 183) = "GA" kolom (184) = "GB" kolom (185) = "GC" kolom (186) = "GD" kolom (187) = "GE" kolom (188) = "GF" kolom (189) = "GG" kolom (190) = "GH" kolom (191) = "GI" kolom (192) = "GJ" kolom (193) = "GK" kolom (194) = "GL" kolom (195) = " GM "kolom (196) =" GN "kolom (197) =" GO "kolom (198) =" GP "kolom (199) =" GQ "kolom (200) =" GR "kolom (201) =" GS " kolom (202) = "GT" kolom (203) = "GU" kolom (204) = "GV" kolom (205) = "GW" kolom (206) = "GX" kolom (207) = "GY" kolom ( 208) = "GZ" kolom (209) = "HA" kolom (210) = "HB" kolom (211) = "HC 'kolom (212) =" HD "kolom (213) =" HE "kolom (214) = "HF" kolom (215) = "HG" kolom (216) = "HH" kolom (217) = "HI" kolom (218) = "HJ" kolom (219) = "HK" kolom (220) = " HL "kolom (221) =" HM "kolom (222) =" HN "kolom (223) =" HO "kolom (224) =" HP "kolom (225) =" HQ "kolom (226) =" HR " kolom (227) = "HS" kolom (228) = "HT" kolom (229) = "HU" kolom (230) = "HV 'kolom (231) =" HW "kolom (232) =" H "-kolom ( 233) = "HY" kolom (234) = "HZ" kolom (235) = "IA" kolom (236) = "IB" kolom (237) = "IC" kolom (238) = "ID" kolom (239) = "IE" kolom (240) = "IF" kolom (241) = "IG" kolom (242) = "H" kolom (243) = "II" kolom (244) = "IJ" kolom (245) = " IK "kolom (246) =" IL "kolom (247) =" IM "kolom (248) =" IN "kolom (249) =" IO "kolom (250) =" IP "kolom (251) =" IQ " kolom (252) = "V" kolom (253) = "IS" kolom (254) = "IT" kolom (255) = "UI" kolom (256) = "IV" Return kolom (aantal) End Function End Class Deze methode heeft gediend me goed en ik hoop dat jullie dat ook doen ... laat dan aub uw commentaar.
Informatie Bitacoras.com ...
Prijs in Bitacoras.com: Hallo, Vandaag wil ik een voorbeeld dat me heeft gediend voor een lange tijd en toch gebruik ik nog steeds laten zien. We zullen een voorbeeld voor een DataTable, ongeacht exporteren naar Excel vol van het aantal kolommen of rijen die Teng .....
Goede ...
Excellent bericht! Dank u wel hielp me vol, maar ik heb een twijfel .. Omdat de link is met sql .. Hoe hernoem ik columns? Want het brengt de naam van het gebied van sql ..!
Ik hoop en ik heb begrepen ..
Dank je wel!
Ik ga om op te slaan ...
op een gegeven moment is het nuttig ...
Is het geldig voor Excel 2007? Ik heb problemen met de export te ontwikkelen, dat het geldig is voor eerdere versies, maar niet voor 2007. Bedankt
Enorme broncode. geserveerd me goed. q het was de hoogste tijd.
Hoewel moeten ook ecxel de invoer van een tabel met gegevens. maar zou het milieu tot een DataGrid en dan updaten van de DataAdapter en het aanvaarden van veranderingen in de DataTable zou worden opgeslagen in de q-bd ... Ik hoop dat ik kan helpen of te vinden .. bedankt
Hallo Hartelijk dank! dit uitstekend!
Maar ik vraag me af waar datagrid geeft aan dat wordt gebruikt in het geval die meerdere Datagrid?
Op de tafel je op gesprek ...
SELECT * FROM (tabelnaam)
Als u wilt opgeven welke velden je wilt
te selecteren (velden, akkers, velden) * uit tabel
EJM
Selecteer auto, kleur, jaar uit de auto
Ik heb een probleem met dit voorbeeld maak ik 2 fouten in de variabelen v en dr, kan ik doen om het te repareren?
Hoi, probeer dit:
Voor elke dr. Als DataRow In ds.Tables (0). Rijen en DataColumn Voor elke v In ds.Tables als (0). Columns
Ik hoop dat dit is opgelost. Groeten.
hola.
dit chevere, maar een deel van de kolom naam is niet erg functioneel.
Ik zal uploaden naar mijn blog een veel kleinere grootte van de code beperkingen en zonder
jaysson.blogspot.com
klaar en ging op het artikel
http://jaysson.blogspot.com/2010/06/columnas-es-excel.html
Goed artikel, maar ik heb een probleem op mijn computer met Excel 2007 werkt soepel, maar met computers met Excel 2003 of eerder werkt niet. Iedereen weet dat als het probleem van de bibliotheken die worden ingevoerd, omdat je wat impliceert dat werkt voor elke uit te blinken, maar ik heb ondervonden dit probleem.
Laten we eens zien of iemand kan de twijfel op te lossen.
Dank u.
Goede ...
Excellent bericht! Dank u wel hielp me vol, maar ik heb een twijfel .. Omdat de link is met sql .. Hoe hernoem ik columns? Want het brengt de naam van het gebied van sql ..!
Ik hoop en ik heb begrepen ..
Dank je wel!
Public Sub ExportarDatosExcel (ByVal DataGridView1 Als DataGridView, ByVal titel As String)
Als Nieuw Excel.Application Dim m_Excel
m_Excel.Cursor = Excel.XlMousePointer.xlWait
m_Excel.Visible = True
Als Excel.Workbook Dim objLibroExcel = m_Excel.Workbooks.Add
Als Excel.Worksheet Dim objHojaExcel = objLibroExcel.Worksheets (1)
Met objHojaExcel
. Visible = Excel.XlSheetVisibility.xlSheetVisible
. Activate ()
'Header
. Range ("A1: L1"). Samenvoegen ()
. Range ("A1: L1"). Value = "INSTITUUT ARGENCAF"
. Range ("A1: L1"). Font.Bold = True
. Range ("A1: L1"). Font.Size = 15
'Tuft
. Range ("A2: L2"). Samenvoegen ()
. Range ("A2: L2"). Value = titel
. Range ("A2: L2"). Font.Bold = True
. Range ("A2: L2"). Font.Size = 12
Const primeraLetra Zoals Char = "A"
Const firstNumber Zo kort = 3
Dim brief als Char, Char als UltimaLetra
Dim Nummer As Integer, UltimoNumero As Integer
Dim As Byte = oplopend cod_letra (primeraLetra) - 1
Dim As String = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator sepDec
Dim As String = Application.CurrentCulture.NumberFormat.NumberGroupSeparator sepMil
'Stel het formaat van de kolommen van de dochter van berekening
StrColumna Dim As String = ""
LetraIzq Dim As String = ""
Dim As Byte = oplopend cod_LetraIzq (primeraLetra) - 1
Letter = primeraLetra
Number = firstNumber
Als Excel.Range Dim objCelda
Voor elke c Als DataGridViewColumn In DataGridView1.Columns
En als c.Visible
Als Letter = "Z" Dan
Letter = primeraLetra
cod_letra = ASC (primeraLetra)
cod_LetraIzq + = 1
LetraIzq = Chr (cod_LetraIzq)
Anders
cod_letra + = 1
Letter = 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
Als c.ValueType Is gettype (Decimaal) OrElse c.ValueType Is gettype (dubbel) dan
objCelda.EntireColumn.NumberFormat = "#" + sepMil + "0" + sepDec + "00"
End If
End If
Volgende
Als Excel.Range Dim objRangoEncab =. Range (primeraLetra + Numero.ToString, LetraIzq + Lyrics + Numero.ToString)
objRangoEncab.BorderAround (1, Excel.XlBorderWeight.xlMedium)
UltimaLetra = Verzenden
Dim As String = LetraIzq UltimaLetraIzq
'LOAD DATA
Dim i As Integer = aantal + 1
Voor elke in lijst Als DataGridViewRow DataGridView1.Rows
LetraIzq = ""
cod_LetraIzq = ASC (primeraLetra) - 1
Letter = primeraLetra
cod_letra = ASC (primeraLetra) - 1
Voor elke c Als DataGridViewColumn In DataGridView1.Columns
En als c.Visible
Als Letter = "Z" Dan
Letter = primeraLetra
cod_letra = ASC (primeraLetra)
cod_LetraIzq + = 1
LetraIzq = Chr (cod_LetraIzq)
Anders
cod_letra + = 1
Letter = Chr (cod_letra)
End If
strColumna = LetraIzq + Lyrics
"Hier moet de belasting worden
. Cells (i, strColumna) = IIf (IsDBNull (reg.ToString), "", reg.Cells (c.Index). Value)
'. Cells (i, strColumna) = IIf (IsDBNull (Verordening (c.DataPropertyName)), c.DefaultCellStyle.NullValue, reg (c.DataPropertyName))
'. Range (strColumna + i, strColumna + i). In ()
End If
Volgende
Als Excel.Range Dim objRangoReg =. Range (primeraLetra + i.ToString, i.ToString strColumna +)
objRangoReg.Rows.BorderAround ()
objRangoReg.Select ()
i + = 1
Volgende
UltimoNumero = i
"Teken lijnen van de kolommen
LetraIzq = ""
cod_LetraIzq = Asc ("A")
cod_letra = ASC (primeraLetra)
Letter = primeraLetra
Voor elke c Als DataGridViewColumn In DataGridView1.Columns
En als c.Visible
. objCelda = Range (LetraIzq + Lyrics + primerNumero.ToString, LetraIzq + Lyrics + (UltimoNumero - 1). ToString)
objCelda.BorderAround ()
Als Letter = "Z" Dan
Letter = primeraLetra
cod_letra = ASC (primeraLetra)
LetraIzq = Chr (cod_LetraIzq)
cod_LetraIzq + = 1
Anders
cod_letra + = 1
Letter = Chr (cod_letra)
End If
End If
Volgende
'Teken de dikke buitenste rand
Als 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 sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click
ExportarDatosExcel (DataGridView1, "export")
End Sub
EXCELLENT!! .... bedankt broer, en had ik 3 dagen met een module voor import / export Excel en niets werkte .... maar met uw oplossing zie ik weer de sterren ... groeten van Arequipa:! ..
Graag gedaan. Ik ben blij dat je als voorbeeld gediend.
hallo excuus voor de stijgende progressBar1? maar ik probeer te doen in dat deel blokie
Deze code heeft me veel geholpen, dus ik samen met mijn twee centen:
Heb geoptimaliseerd de "kolomnaam" om ahsta ZZ kolom komen (702 et al.).
Hier geef ik je de code:
Public Function kolomnaam (ByVal aantal As Integer) As String
Dim kolom (703) As String
Kolom (1) = "A"
kolom (2) = "B"
kolom (3) = "C"
kolom (4) = "D"
kolom (5) = "E"
kolom (6) = "F"
kolom (7) = "G"
kolom (8) = "H"
kolom (9) = "I"
kolom (10) = "J"
kolom (11) = "K"
kolom (12) = "L"
kolom (13) = "M"
kolom (14) = "N"
kolom (15) = "O"
kolom (16) = "P"
kolom (17) = "Q"
kolom (18) = "R"
kolom (19) = "S"
kolom (20) = "T"
kolom (21) = "U"
kolom (22) = "V"
kolom (23) = "W"
kolom (24) = "X"
kolom (25) = "Y"
kolom (26) = "Z"
Dim i = 27
Voor Ltr1 = 1 tot 26
Voor Ltr2 = 1 tot 26
kolom (i) = kolom (Ltr1) en kolom (Ltr2)
i + = 1
Volgende
Volgende
Return kolom (aantal)
End Function
TECKNOCK, heel erg bedankt voor de hulp!, Maar houd in gedachten dat als het boek dat we maken is compatibel met Excel 97-2003 maximaal toegestane kolommen is 256 (tot en met IV). Net zoals een Commentaar over deze rekening te houden.
Elisa
Toen ik de lokale toepassing funcioana correct, maar als ik het te uploaden op een website niet het genereren van de Excel, maar krijgen geen fout
Ik ben op zoek Haciend een geaard naar mijn sql
niet zoals ik deed, maar ik zal doen aja
Ik heb hulp nodig te proberen om het te doen om de manier waarop jullie hier zijn en krijg ik de foutmelding alle
Hand, je bent de perfecte funca maximum.
[...] [...]
zeer goed, zijn felicitaties in de beste post die ik heb gelezen en geraadpleegd
Dank je wel! Het was zeer nuttig
Hey de code werkt niet op me markeert een da.Fill fouten (ds)
Markeer ik de fout werd niet gevonden SQLException
Kunt u mij helpen
een vraag kan direct laden SQL-query uit te blinken?
tevoren door middel van
Hallo vrienden in de eerste plaats je agradesco uw bijdrage.
Merk op dat ik een probleem dat ik niet kan vinden de referentie die u aan te geven, heb ik Office 2010 geïnstalleerd en die niet kunnen worden mijn probleem te hebben.
agradeseria wat advies aan u voor.
Hallo, zeer goede bijdrage is wat ik zocht ... maar toen ik het uit te voeren van de ontwikkeling server werkt perfect, maar als ik het internet toegang te krijgen vanaf een andere pc doet niets ... geen fout, maar neemt niets op ...
Iedereen weet hoe dit te verhelpen?
Dank u wel, hielp me je bijvoorbeeld als basis voor het genereren van een functie die me genereert een Excel-bestand, maar rechtstreeks van de waarden die in een raster is wat dejor geval is handig voor iemand
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / We stellen de regel met de kolomkoppen
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objHojaExcel.Range ("A1"). Selecteer met ()
Dim I As Integer = 0
Lncol Dim As Integer = 1
Voor elke v In dgvSocios.Columns
Als dgvSocios.Columns.Item (I). Visible = True Then
objHojaExcel.Range (kolomnaam (lncol) & 1). Value = dgvSocios.Columns.Item (I). HeaderText
lncol + = 1
End If
I + = 1
Volgende
row + = 1
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / We formatteren de rij titels
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Als Excel.Range Dim objRango = objHojaExcel.Range ("A1:" & kolomnaam (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
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Laad alle rijen in de gegevenstabel
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ProgressBar1.Maximum = dgvSocios.Rows.Count
kolom = 0
ProgressBar1.Value = 0
ProgressBar1.Visible = True
Lnfila Dim As Integer = 0
I = 1
Voor elke dr In dgvSocios.Rows
kolom = 0
Voor elke v In dgvSocios.Columns
Als dgvSocios.Columns.Item (kolom). Visible = True Then
objHojaExcel.Range (kolomnaam (I) & rij). Value = dgvSocios.Item (kolom, lnfila). Value.ToString
I + = 1
End If
kolom + = 1
Volgende
lnfila + = 1
row + = 1
ProgressBar1.Value + = 1
Volgende
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / We passen de breedte automatisch
'/ / Van alle gebruikte kolommen
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objRango = objHojaExcel.Range ("A1:" & kolomnaam (lncol) & (lnfila + 1) ToString.)
objRango.Select ()
objRango.Columns.AutoFit ()
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / We vertellen Excel om te laten zien
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MsgBox ("Export naar Excel Complete", MsgBoxStyle.Information, ". :: Solovb.net ::.")
m_Excel.Visible = True
Brengen een beetje voor deze functie de volgende code voorkomt dat het gebruik van "Range" om niet vereist dat de functie "kolomnaam"
Met vriendelijke groet,
Invoer System.Data
Invoer System.Data.SqlClient
Invoer Microsoft.Office.Interop.Excel
Openbare Module mutil
Public Sub ExportarDtToExcel (ByVal Dt Als System.Data.DataTable, ByVal titel As String)
Als Excel.Application Dim m_Excel
Als Excel.Workbook Dim objLibroExcel
Als werkblad Dim objHojaExcel
Proberen
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Maak het Excel-object
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
m_Excel = CreateObject ("Excel.Application")
m_Excel.Workbooks.Add objLibroExcel = ()
objHojaExcel = objLibroExcel.Worksheets (1)
objHojaExcel.Name = Titel
objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible
objHojaExcel.Activate ()
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Definieer twee variabelen om rij en kolom te controleren
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Dim rij As Integer = 1
Dim column As Integer = 1
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / We stellen de regel met de kolomkoppen
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'ObjHojaExcel.Range ("A1"). Selecteer met ()
objHojaExcel.Cells (rij, kolom). SELECTEREN ()
Voor elke v In Dt.Columns
objHojaExcel.Cells (rij, kolom). Value = dc.ColumnName
kolom + = 1
Volgende
row + = 1
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / We formatteren de rij titels
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Als 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
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Laad alle rijen in de gegevenstabel
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kolom = 1
Voor elke dr In Dt.Rows
kolom = 1
Voor elke v In Dt.Columns
objHojaExcel.Cells (rij, kolom). Value = dr. (dc.ColumnName)
kolom + = 1
Volgende
row + = 1
Volgende
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / We passen de breedte automatisch
'/ / Van alle gebruikte kolommen
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objHojaExcel.Cells objRango = (1, Dt.Columns.Count)
objRango.Select ()
objRango.Columns.AutoFit ()
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / We vertellen Excel om te laten zien
"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MsgBox ("Export naar Excel Complete" MsgBoxStyle.Information, "Export")
m_Excel.Visible = True
Catch ex als uitzondering
MsgBox (ex.ToString)
Eindelijk
objHojaExcel = Nothing
objLibroExcel = Nothing
m_Excel = Nothing
End Try
End Sub
End Module
iemand gelieve de stijgende Progress1?