Microsoft Excel DataTable otomatik olarak ihracat

Bugün uzun bir süre için bana hizmet ve henüz hala kullanmak olan bir örnek göstermek istiyorum.
Biz ne olursa olsun, sütun veya sahip satır sayısı Excel tam bir DataTable vermek için bir örnek vereyim.

Orada bunu yapmak için pek çok yöntem olabilir, ancak bu yöntem Excel herhangi bir sürümü için çalışıyor çünkü ben gerçekten faydalı bulabilirsiniz. Excel'in daha yeni sürümleri ile compatilidad sorunlar için yalnızca 256 sütun anlaştım.

Biz gereken ilk şey Microsoft.Office.Interop.Excel için bir başvuru eklemek için ve biz aşağıdaki gibi yapın:

Importar referencia a Excel

Excel için referans alma

Importar referencia Excel

İthalat Excel başvuru

Sonra bir form, bir düğme, dataGridView ve ilerleme çubuğu gerekir. Biz resimde görüldüğü olabilir:

Formulario aplicación para exportar dataset a excel

Excel veri kümesi ihracat Başvuru formu

Şimdi tüm kod en önemli şey, herhangi bir tabloya adapte olması gerçekten basit olduğunu göstermek istiyoruz. Siz sorun olmadan yeniden mümkün olacak.

  Imports System.Data
 Imports System.Data.SqlClient
 İthalat Microsoft.Office.Interop

 Public Class Form1
     Yeni Private ds As DataSet

     Private Sub Form1_Load (System.EventArgs As System.Object, ByVal e ByVal sender As) Kolları MyBase.Load
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Bağlantı oluştur ve DataGridView doldurmak
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         As New SqlConnection Dim cnn ("Data Source = localhost \ sqlexpress; Initial Catalog = Northwind; Integrated Security = True")
         Yeni SqlDataAdapter Dim da ("müşteri Select * from", cnn)
         da.Fill (ds)
         = Ds.Tables (0) DataGridView1.DataSource
     End Sub

     BtnExportar_Click Private Sub (System.EventArgs As System.Object, ByVal e ByVal sender As) btnExportar.Click Kolları
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Excel nesne oluşturma
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         Dim m_Excel
         Dim objLibroExcel
         Dim objHojaExcel
         m_Excel = CreateObject ("Excel.Application")
         m_Excel.Workbooks.Add objLibroExcel = ()
         objHojaExcel = objLibroExcel.Worksheets (1)
         objHojaExcel.Name = "Müşteriler"
         objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible
         () objHojaExcel.Activate

         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Satır ve sütun kontrol etmek için iki değişken tanımlayın
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         Integer = 1 Dim satır
         Integer = 1 Dim sütun

         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Biz sütun başlıkları satırı aşağıdaki şekilde
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         objHojaExcel.Range ("A1").) (seçin
         Ds.Tables In Her dc (0) için. Sütunlar
             objHojaExcel.Range (ColumnName (sütun) ve 1). Değer = dc.ColumnName
             Sütun + = 1
         Sonraki
         satır + 1 =

         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Biz satır başlıkları biçimlendirmek
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         Excel.Range Dim objRango = objHojaExcel.Range (: & ColumnName (ds.Tables (0) Columns.Count) ve "1". "A1") gibi
         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 tüm satırları yükleyin
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         ProgressBar1.Maximum = ds.Tables (0). Rows.Count
         kolon = 1
         ProgressBar1.Value = 0
         Her ds.Tables yılında dr (0). Satırlar için
             kolon = 1
             Ds.Tables In Her dc (0) için. Sütunlar
                 objHojaExcel.Range (ColumnName (sütun) ve satır). Değer = dr (dc.ColumnName)
                 Sütun + = 1
             Sonraki
             satır + 1 =
             ProgressBar1.Value + = 1
         Sonraki

         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Otomatik olarak genişliğini ayarlamak
         Kullanılan tüm sütunları itibaren '/ /
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         objRango = objHojaExcel.Range ("A1:" & ColumnName (ds.Tables (0) Columns.Count) & ds.Tables (0) Rows.Count.ToString..)
         objRango.Select ()
         () objRango.Columns.AutoFit

         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Biz Excel görüntülemek için söyle
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         MsgBox (MsgBoxStyle.Information "Excel Komple verme", ". :: Solovb.net ::.")
         m_Excel.Visible = True

     End Sub

     As String Public Function ColumnName (Integer ByVal numarası)
         As String Dim kolon (256)

         Sütun (1) = "A"
         sütunu (2) = "B"
         sütunu (3) = "C"
         sütunu (4) = "D"
         sütunu (5) = "E"
         sütunu (6) = "F"
         sütunu (7) = "G"
         sütunu (8) = "H"
         sütunu (9) = "I"
         kolon (10) = "J"
         kolon (11) = "K"
         kolon (12) "L" =
         kolon (13) = "M"
         kolon (14) = "N"
         kolon (15) = "O"
         Sütun (16) = "P"
         kolon (17) = "S"
         kolon (18) = "R"
         kolon (19) = "S"
         kolon (20) = "T"
         kolon (21) = "U"
         kolon (22) = "V"
         kolon (23) = "W"
         kolon (24) = "X"
         kolon (25) = "Y"
         kolon (26) = "Z"
         Sütun (27) = "AA"
         kolon (28) = "AB"
         kolon (29) = "AC"
         kolon (30) = "MS"
         kolon (31) = "AE"
         kolon (32) = "AF"
         kolon (33) = "AG"
         kolon (34) = "AH"
         kolon (35) = "AI"
         kolon (36) = "AJ"
         kolon (37) = "AK"
         kolon (38) = "AL"
         kolon (39) = "AM"
         kolon (40) = "AN"
         kolon (41) = "AO"
         kolon (42) = "AP"
         kolon (43) = "AQ"
         kolon (44) = "AR '
         kolon (45) = "AS"
         Sütun (46) = "AT"
         kolon (47) = "UA"
         kolon (48) = "AV"
         kolon (49) = "AW"
         kolon (50) = "AX"
         kolon (51) = "ay"
         kolon (52) = "AZ"
         kolon (53) = "BA"
         kolon (54) = "BB '
         kolon (55) = "BC"
         kolon (56) = "BD"
         kolon (57) = "BE"
         kolon (58) = "BF"
         kolon (59) = "TR"
         kolon (60) = "BH"
         kolon (61) = "BI"
         kolon (62) = "BJ"
         kolon (63) = "BK"
         kolon (64) = "BL"
         kolon (65) = "BM"
         kolon (66) = "BN"
         kolon (67) = "BO"
         kolon (68) = "BP"
         kolon (69) = "BQ"
         kolon (70) = "Br"
         kolon (71) = "BS"
         kolon (72) = "BT"
         kolon (73) = "BU"
         kolon (74) = "BV"
         kolon (75) = "B"
         kolon (76) = "BX"
         kolon (77) = "tarafından"
         kolon (78) = "BZ"
         kolon (79) = "CA"
         kolon (80) = "CB"
         kolon (81) = "CC"
         kolon (82) = "CD"
         kolon (83) = "CE"
         kolon (84) = "CF"
         kolon (85) = "CG"
         kolon (86) = "CH"
         kolon (87) = "CI"
         kolon (88) = "CJ"
         kolon (89) = "CK"
         kolon (90) = "CL"
         kolon (91) = "CM"
         kolon (92) = "CN"
         kolon (93) = "CO"
         kolon (94) = "CP"
         kolon (95) = "CQ"
         kolon (96) = "CR"
         kolon (97) = "CS"
         kolon (98) = "CT"
         kolon (99) = "CU"
         kolonu (100) = "CV"
         kolon (101) = "CW"
         kolonu (102) = "CX"
         kolonu (103) = "CY"
         kolonu (104) = "CZ"
         kolon (105) = "DA"
         kolonu (106) = "DB"
         kolon (107) = "DC"
         kolon (108) = "DD"
         kolonu (109) = "DE"
         kolonu (110) = "DF"
         kolonu (111) = "DG"
         kolonu (112) = "DH"
         kolonu (113) = "İD"
         kolonu (114) = "DJ"
         kolonu (115) = "DK"
         kolonu (116) = "DL"
         kolonu (117) = "DM"
         kolonu (118) = "DN"
         kolonu (119) = "DO"
         kolonu (120) = "DP"
         kolonu (121) = "DQ"
         kolonu (122) = "DR"
         kolon (123) = "DS"
         kolonu (124) = "DT"
         kolonu (125) = "DU"
         kolonu (126) = "DV"
         kolonu (127) = "DW"
         kolonu (128) = "DX"
         kolonu (129) = "DY"
         kolonu (130) = "DZ"
         kolonu (131) = "EA"
         kolonu (132) = "EB"
         kolon (133) = "AK"
         kolonu (134) = "ED"
         kolon (135) = "EE"
         kolon (136) = "EF"
         kolonu (137) = "EG"
         kolonu (138) = "EH"
         kolonu (139) = "EI"
         kolonu (140) = "EJ"
         kolonu (141) = "EK"
         kolon (142) = "ON"
         kolonu (143) = "MS"
         kolon (144) = "EN"
         kolonu (145) = "EO"
         kolonu (146) = "EP"
         kolonu (147) = "eq"
         kolon (148) = "ER"
         kolon (149) = "ES"
         kolonu (150) = "ET"
         kolon (151) = "AB"
         kolonu (152) = "EV"
         kolonu (153) = "EW"
         kolonu (154) = "EX"
         kolonu (155) = "EY"
         kolonu (156) = "EZ"
         kolonu (157) = "FA"
         kolonu (158) = "FB"
         kolonu (159) = "FC"
         kolon (160) = "FD"
         kolon (161) = "FE"
         kolonu (162) = "FF"
         kolonu (163) = "FG"
         kolonu (164) = "FH"
         kolon (165) = "FI"
         kolonu (166) = "FJ"
         kolonu (167) = "FK"
         kolonu (168) = "FL"
         kolonu (169) = "FM"
         kolonu (170) = "Fn"
         kolonu (171) = "FO"
         kolonu (172) = "FP"
         kolonu (173) = "CF"
         kolon (174) = "FR"
         kolonu (175) = "FS"
         kolonu (176) = "MS"
         kolonu (177) = "FU"
         kolonu (178) = "PV"
         kolonu (179) = "FW"
         kolon (180) = "FX"
         kolonu (181) = "FY"
         kolon (182) = "FZ"
         kolon (183) = "GA"
         kolonu (184) = "GB"
         kolonu (185) = "GC"
         kolon (186) = "GD"
         kolon (187) = "GE"
         kolon (188) = "GF"
         kolon (189) = "GG"
         kolonu (190) = "GH"
         kolon (191) = "GI"
         kolon (192) = "GJ"
         kolonu (193) = "GK"
         kolonu (194) = "GL"
         kolon (195) = "GM"
         kolon (196) = "GN"
         kolon (197) "GO" =
         kolonu (198) = "GP"
         kolon (199) = "GQ"
         kolonu (200) = "GR"
         kolon (201) = "GS"
         kolon (202) = "GT"
         kolon (203) = "GU"
         kolonu (204) = "GV"
         kolonu (205) = "GW"
         kolonu (206) = "GX"
         kolonu (207) = "GY"
         kolon (208) = "GZ"
         kolon (209) = "HA"
         kolon (210) = "HB"
         kolonu (211) = "HC"
         kolonu (212) = "HD"
         kolon (213) = "HE"
         kolonu (214) = "HF"
         kolon (215) = "HG"
         kolonu (216) = "HH '
         kolonu (217) = "HI"
         kolonu (218) = "HJ"
         kolonu (219) = "HK"
         kolonu (220) = "HL"
         kolon (221) = "HM"
         kolonu (222) = "HN"
         kolon (223) = "HO"
         kolon (224) = "HP"
         kolon (225) = "HQ"
         kolon (226) = "HR"
         kolon (227) = "HS"
         kolon (228) = "HT"
         kolon (229) = "HU"
         kolonu (230) = "HV"
         kolonu (231) = "HW"
         kolonu (232) = "H"
         kolonu (233) = "HY"
         kolonu (234) = "Hz"
         kolonu (235) = "IA"
         kolon (236) = "IB"
         kolonu (237) = "IC"
         kolon (238) = "ID"
         kolon (239) = "IE"
         kolon (240) = "EĞER"
         kolonu (241) = "IG"
         kolon (242) = "IH"
         kolonu (243) = "II"
         kolonu (244) = "IJ"
         kolonu (245) = "TK"
         kolonu (246) = "IL"
         kolonu (247) = "IM"
         kolon (248) = "IN"
         kolonu (249) = "IO"
         kolon (250) = "IP"
         kolonu (251) = "IQ"
         kolonu (252) = "R"
         kolon (253) = "IS"
         kolon (254) = "IT"
         kolon (255) = "IU"
         kolon (256) = "IV"

         İade sütun (sayı)
     End Function
 End Class 

Bu yöntem bana hizmet vermiştir ve ben de bunu umuyoruz ... yorumlarınızı bırakın lütfen.

36 Responses to "otomatik Microsoft Excel'e DataTable İhracat"

  1. Bitacoras.com diyor ki:

    Bilgi Bitacoras.com ...

    Bitacoras.com Puan Ver: Merhaba, Bugün ben uzun bir süre için bana hizmet ve henüz hala kullanmak olan bir örnek göstermek istiyorum. Biz Teng bu sütun sayısı veya satır bakılmaksızın Excel tam bir DataTable vermek için bir örnek yapacak .....

    • Carlos Linares diyor ki:

      İyi ...

      Mükemmel mesaj! Bana tam yardım ederiz, ama bir şüphe var .. Sql bağlantısı ile olduğu gibi .. Nasıl sütunlar yeniden adlandırmak yok!? Bu sql alanlarında adını getiriyor çünkü ..!

      Umarım ve anladım ..

      Teşekkür ederiz!

  2. Denko diyor ki:

    Ben kazanmak için gidiyorum ...
    bir noktada faydalı olacaktır ...

  3. Victor diyor ki:

    Bu Excel 2007 için geçerli mi? Ben 2007 için daha önceki sürümleri için geçerlidir, ama o, geliştirmek için ihracat ile ilgili sorunlar vardı. Teşekkürler

  4. John diyor ki:

    Muazzam kaynak kodu. bana hizmet. q uzun gecikmiş oldu.

  5. John diyor ki:

    Aynı zamanda bir veri tablosunun ithalat ecxel gerekir rağmen. ancak bir veri çevresel olabilir ve daha sonra DataAdapter güncellenmesi ve datatable değişiklikleri kabul q bd kaydedilmiş olacaktır ... Ben yardımcı olabilir ya da bulmayı umuyorum .. teşekkürler

  6. jose diyor ki:

    Merhaba çok teşekkür ederiz! Bu mükemmel!
    Datagrid birkaç Datagrid olduğu durumda kullanılan belirtir Ama nerede acaba?

    • Carlos Linares diyor ki:

      Masanın üzerinde bir çağrı konum ...

      select * from (tablo adı)

      Hangi alanları istediğiniz belirtmek istiyorsanız

      * tablodan (alanları, alanları, alanları) seçin
      ejm
      araba araba, renk, yıl seçin

  7. beto dedi ki:

    Ben değişkenleri dc ve dr 2 hata yaparlar bu örnek ile ilgili bir sorun var, bunu düzeltmek için ne yapabilirim?

    • Elisha diyor ki:

      Merhaba, bu deneyin:
      Ds.Tables yılında DataRow (0) olarak her dr için. Satırlar ve DataColumn ds.Tables In Her dc olarak (0) için. Sütunlar

      Bu çözülürse umuyoruz. Selamlar.

  8. jason diyor ki:

    hola.
    Bu chevere, ancak sütun adının bir parçası çok işlevsel değildir.
    Blogumun çok daha küçük bir kod boyutu sınırlamaları ve olmayan karşıya olacak

    jaysson.blogspot.com

  9. Rodrigo diyor ki:

    İyi makale, ama sorunsuz Excel 2007 çalışmaları ile benim bilgisayarda bir sorun var, ama Excel ile bilgisayarlar ile 2003 veya önceki çalışmıyor. Kütüphanelerin sorunu ithal olduğunu eğer herhangi bir excel çalışmaları ima beri herkes, biliyorum, ama bu sorunla karşılaştı.

    Birisi şüphe çözebilir Bakalım.
    Teşekkür ederim.

  10. Carlos Linares diyor ki:

    İyi ...

    Mükemmel mesaj! Bana tam yardım ederiz, ama bir şüphe var .. Sql bağlantısı ile olduğu gibi .. Nasıl sütunlar yeniden adlandırmak yok!? Bu sql alanlarında adını getiriyor çünkü ..!

    Umarım ve anladım ..

    Teşekkür ederiz!

  11. Alexander diyor ki:

    Public Sub ExportarDatosExcel (As String DataGridView, ByVal başlık ByVal DataGridView1)
    Yeni Excel.Application Dim m_Excel gibi
    m_Excel.Cursor = Excel.XlMousePointer.xlWait
    m_Excel.Visible = True
    Excel.Workbook Dim objLibroExcel = m_Excel.Workbooks.Add gibi
    Excel.Worksheet Dim objHojaExcel = objLibroExcel.Worksheets (1)
    ObjHojaExcel ile
    . Visible = Excel.XlSheetVisibility.xlSheetVisible
    . Activate ()
    'Başlık
    . Range ("A1: L1").) (Birleştirme
    . Range ("A1: L1"). Value = "ENSTİTÜSÜ ARGENCAF"
    . Range ("A1: L1"). Font.Bold = True
    . Range ("A1: L1"). = 15 Font.Size
    'Püskül
    . Range ("A2: L2").) (Birleştirme
    . Range ("A2: L2"). Değer = title
    . Range ("A2: L2"). Font.Bold = True
    . Range ("A2: L2"). = 12 Font.Size

    Char olarak Const primeraLetra = "A"
    Kısa = 3 gibi Const firstNumber
    UltimaLetra gibi Char, Char Dim mektup
    As Integer Dim sayısı, As Integer UltimoNumero
    1 - Byte = Asc cod_letra (primeraLetra) Dim
    String = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator sepDec Dim
    String = Application.CurrentCulture.NumberFormat.NumberGroupSeparator sepMil Dim
    Hesaplama kızı sütun 'Set formatı
    "" String = As StrColumna Dim
    "" String = As LetraIzq Dim
    1 - Byte = Asc cod_LetraIzq (primeraLetra) Dim
    Mektubu = primeraLetra
    Number = firstNumber
    Excel.Range Dim objCelda gibi
    DataGridView1.Columns yılında olduğu gibi DataGridViewColumn Her c için
    Sonra c.Visible eğer
    Mektubu = "Z", eğer
    Mektubu = primeraLetra
    cod_letra = Asc (primeraLetra)
    cod_LetraIzq + = 1
    LetraIzq = Chr (cod_LetraIzq)
    Başka
    cod_letra + = 1
    Mektubu = Chr (cod_letra)
    End If
    strColumna = LetraIzq + Lyrics + Numero.ToString
    objCelda =. Range (strColumna, Type.Missing)
    objCelda.Value = c.HeaderText
    = 8 objCelda.EntireColumn.Font.Size
    'ObjCelda.EntireColumn.NumberFormat = c.DefaultCellStyle.Format
    C.ValueType midir Eğer GetType (Decimal) OrElse c.ValueType Sonra GetType (Çift) mı
    objCelda.EntireColumn.NumberFormat = "#" + sepMil + "0" + sepDec + "00"
    End If
    End If
    Sonraki

    Excel.Range Dim objRangoEncab =. Range (primeraLetra + Numero.ToString, LetraIzq + Lyrics + Numero.ToString) gibi
    objRangoEncab.BorderAround (1, Excel.XlBorderWeight.xlMedium)
    UltimaLetra = Gönder
    String = LetraIzq UltimaLetraIzq Dim

    'LOAD DATA
    Dim i As Integer = Sayı + 1

    DataGridViewRow DataGridView1.Rows gibi her ayında Listesi
    LetraIzq = ""
    cod_LetraIzq = Asc (primeraLetra) - 1
    Mektubu = primeraLetra
    cod_letra = Asc (primeraLetra) - 1
    DataGridView1.Columns yılında olduğu gibi DataGridViewColumn Her c için
    Sonra c.Visible eğer
    Mektubu = "Z", eğer
    Mektubu = primeraLetra
    cod_letra = Asc (primeraLetra)
    cod_LetraIzq + = 1
    LetraIzq = Chr (cod_LetraIzq)
    Başka
    cod_letra + = 1
    Mektubu = Chr (cod_letra)
    End If
    strColumna = LetraIzq + Lyrics
    "Burada yük olmalıdır
    . Cells (i, strColumna) = IIf (IsDBNull (reg.ToString) "," reg.Cells (c.Index). Değer)
    '. Cells (i, strColumna) = IIf (IsDBNull (atılmaz (c.DataPropertyName)), c.DefaultCellStyle.NullValue, reg (c.DataPropertyName))
    '. Aralığı (strColumna + i, strColumna + i). In ()

    End If
    Sonraki
    Excel.Range Dim objRangoReg gibi. = Range (primeraLetra + i.ToString, i.ToString strColumna +)
    objRangoReg.Rows.BorderAround ()
    objRangoReg.Select ()
    i + = 1
    Sonraki
    UltimoNumero = i

    Sütunların "Beraberlik hatları
    LetraIzq = ""
    cod_LetraIzq = Asc ("A")
    cod_letra = Asc (primeraLetra)
    Mektubu = primeraLetra
    DataGridView1.Columns yılında olduğu gibi DataGridViewColumn Her c için
    Sonra c.Visible eğer
    . objCelda = Range (LetraIzq + Lyrics + primerNumero.ToString, LetraIzq + Lyrics + (UltimoNumero -. 1) ToString)
    objCelda.BorderAround ()
    Mektubu = "Z", eğer
    Mektubu = primeraLetra
    cod_letra = Asc (primeraLetra)
    LetraIzq = Chr (cod_LetraIzq)
    cod_LetraIzq + = 1
    Başka
    cod_letra + = 1
    Mektubu = Chr (cod_letra)
    End If
    End If
    Sonraki

    'Kalın dış sınır çizin
    . (. - 1) ToString primeraLetra + primerNumero.ToString, UltimaLetra UltimaLetraIzq + + (UltimoNumero) Excel.Range dim objRango = aralığı itibarıyla
    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 (System.EventArgs As System.Object, ByVal e ByVal sender As) ToolStripButton2.Click Kolları
    ExportarDatosExcel (DataGridView1, "ihracat")
    End Sub

  12. JuanPeople diyor ki:

    MÜKEMMEL! .... teşekkürler kardeşim, ve ithalat / ihracat Excel ve hiçbir şey için bir modül ile 3 gün süren çalıştı .... ama çözümü ile ben arequipa yine yıldızlar ... selam bakın:! ..

    • Elisha diyor ki:

      Bir şey değil. Ben size bir örnek olarak hizmet memnunum.

      • pamela diyor ki:

        merhaba yükselen progressBar1 özür dileyeceğiz? ama o kısmı blokie yapmak çalışıyorum : (

  13. TECKNOCK diyor ki:

    Bu kod, bu yüzden benim iki kuruş ile işbirliği, bana çok yardım etti:

    Ahsta ZZ sütun gelmesi "ColumnName" optimize (702 vd.)

    İşte sana bir kod verir:

    As String Public Function ColumnName (Integer ByVal numarası)
    As String Dim kolon (703)

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

    Dim i = 27
    Ltr1 için = 1 To 26
    Ltr2 için = 1 To 26
    sütun: (i) = kolonu (Ltr1) ve sütunun (Ltr2)
    i + = 1
    Sonraki
    Sonraki

    İade sütun (sayı)
    End Function

    • Elisha diyor ki:

      TECKNOCK,! Yardımlarınız için çok teşekkür ederim, ama yarattığımız kitabın izin Excel 97-2003 maksimum sütunlar ile uyumlu olup olmadığını 256 (IV) olduğunu unutmayın. Yorum hesaba almak gibi.

      Elisha

  14. raysip diyor ki:

    Ben doğru yerel uygulama funcioana koşuyorum, ama ben bir web sitesinde yüklediğinizde excel yaratmaz ama hata alamadım zaman

  15. Aderson diyor ki:

    Benim sql A TOPRAKLI haciend arıyorum

    ben yapıyordum ama AJA Yapmayacağız gibi

  16. Paul diyor ki:

    Ben burada olan her şekilde yapmaya çalışacağım yardıma ihtiyacım var ve ben hata alıyorum

  17. JOHN diyor ki:

    El, size mükemmel funca maksimum konum.

  18. Neji diyor ki:

    çok iyi, tebrikler iyi yazı okudum ve istişare ettik edilir

  19. Patricia diyor ki:

    Teşekkür ederiz! Bu çok yararlı oldu

  20. f.delgado diyor ki:

    Hey kod bana çalışmayan bir da.Fill hataları işaretler (ds)

    Ben hata işaretlemek SqlException bulunmadı

    bana yardım edebilir

  21. jav diyor ki:

    bir soru excel doğrudan yükleme sql sorgusu yapabilir?

    önceden yoluyla

  22. Delfino Morales diyor ki:

    merhaba bütün agradesco katkınız ilk arkadaş.
    Seni ben office 2010 yüklü ve benim sorunum olamaz, hangi gösterir referans bulamıyorum bir sorun olduğunu unutmayın.
    size agradeseria bazı tavsiyeler.

  23. Amerika diyor ki:

    Merhaba, çok iyi bir katkı Ben arıyordum ne olduğunu ... ama geliştirme sunucudan çalıştırdığınızda mükemmel çalışır, ama başka bir pc den web eriştiğinizde hiçbir şey ... hiçbir hata yapar ama kayıt olmayan birşeyi yok ...

    Herkes bunu düzeltmek nasıl biliyor?

  24. Azofeifa Hernan diyor ki:

    Çok teşekkür ederim, bana örnek oldu ama doğrudan bir tablo içinde depolanan değerleri bana bir Excel dosyası oluşturan bir fonksiyon oluşturmak için bir temel olarak ne dejor durumda birisi için yararlı olduğunu

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Biz sütun başlıkları satırı aşağıdaki şekilde
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objHojaExcel.Range ("A1").) (seçin
    As Integer Dim I = 0
    As Integer Dim Lncol = 1
    DgvSocios.Columns In Her dc için

    DgvSocios.Columns.Item (I). Visible = True Sonra ise
    objHojaExcel.Range (ColumnName (lncol) & 1). Değer = dgvSocios.Columns.Item (I). HeaderText
    lncol + = 1
    End If
    I + = 1
    Sonraki
    satır + 1 =

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Biz satır başlıkları biçimlendirmek
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Excel.Range Dim objRango = objHojaExcel.Range (: & ColumnName (lncol) ve "1" "A1") gibi
    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 tüm satırları yükleyin
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    ProgressBar1.Maximum = dgvSocios.Rows.Count
    kolon = 0
    ProgressBar1.Value = 0
    ProgressBar1.Visible = True
    Integer = 0 olarak Lnfila Dim
    I = 1
    DgvSocios.Rows In Her dr için
    kolon = 0

    DgvSocios.Columns In Her dc için
    DgvSocios.Columns.Item (sütun). Visible = True Sonra ise
    objHojaExcel.Range (ColumnName (I) ve satır). Değer = dgvSocios.Item (sütun, lnfila). Value.ToString
    I + = 1
    End If
    Sütun + = 1
    Sonraki
    lnfila + = 1
    satır + 1 =
    ProgressBar1.Value + = 1
    Sonraki

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Otomatik olarak genişliğini ayarlamak
    Kullanılan tüm sütunları itibaren '/ /
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objRango = objHojaExcel.Range ("A1:" & ColumnName (lncol) & (lnfila + 1) ToString.)
    objRango.Select ()
    () objRango.Columns.AutoFit

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Biz Excel görüntülemek için söyle
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    MsgBox (MsgBoxStyle.Information "Excel Komple verme", ". :: Solovb.net ::.")
    m_Excel.Visible = True

  25. Pako diyor ki:

    Bu fonksiyon için biraz getiren aşağıdaki kod işlevi "ColumnName" gerektirmez için "Aralık" kullanımını önler

    Saygılarımızla,

    Imports System.Data
    Imports System.Data.SqlClient
    İthalat Microsoft.Office.Interop.Excel
    Kamu Modülü Mutil
    Public Sub ExportarDtToExcel (As String System.Data.DataTable, ByVal başlık ByVal Dt)
    Excel.Application Dim m_Excel gibi
    Excel.Workbook Dim objLibroExcel gibi
    Worksheet Dim objHojaExcel gibi
    Denemek
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Excel nesne oluşturma
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    m_Excel = CreateObject ("Excel.Application")
    m_Excel.Workbooks.Add objLibroExcel = ()
    objHojaExcel = objLibroExcel.Worksheets (1)
    objHojaExcel.Name = Başlık
    objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible
    () objHojaExcel.Activate

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Satır ve sütun kontrol etmek için iki değişken tanımlayın
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Integer = 1 Dim satır
    Integer = 1 Dim sütun

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Biz sütun başlıkları satırı aşağıdaki şekilde
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    'ObjHojaExcel.Range ("A1").) (Seçin

    objHojaExcel.Cells (satır, sütun).) (SEÇ
    Dt.Columns In Her dc için
    objHojaExcel.Cells (satır, sütun). Değer = dc.ColumnName
    Sütun + = 1
    Sonraki
    satır + 1 =

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Biz satır başlıkları biçimlendirmek
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Excel.Range = loş objRango objHojaExcel.Range (objHojaExcel.Cells (1, 1), objHojaExcel.Cells (1, Dt.Columns.Count)) gibi
    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 tüm satırları yükleyin
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

    kolon = 1

    Dt.Rows In Her dr için
    kolon = 1
    Dt.Columns In Her dc için
    objHojaExcel.Cells (satır, sütun). Değer = dr (dc.ColumnName)
    Sütun + = 1
    Sonraki
    satır + 1 =

    Sonraki

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Otomatik olarak genişliğini ayarlamak
    Kullanılan tüm sütunları itibaren '/ /
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objHojaExcel.Cells objRango = (1, Dt.Columns.Count)
    objRango.Select ()
    () objRango.Columns.AutoFit

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Biz Excel görüntülemek için söyle
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    MsgBox (MsgBoxStyle.Information "Excel Komple verme", "İhracat")
    m_Excel.Visible = True

    İstisna olarak Catch ex

    MsgBox (ex.ToString)

    Nihayet

    objHojaExcel = Nothing
    objLibroExcel = Nothing
    m_Excel = Nothing

    End Try
    End Sub

    End Module

  26. pamela diyor ki:

    Birisi yükselen progress1 açıklar mısınız?

  27. Karloz diyor ki:

    Merhaba işlevi ColumnName göre benim katkım getirmek, iyi ben kalkınma alanında çok az deneyime sahip ve belki daha az sayıda kod hatları ile yapabilirim, bana geliştirmek için iş biraz mal ve yararlı umuyoruz. Orada bırakın
    FtNombreColumna Fonksiyon As String (Integer, Integer, ByVal Opsiyonel sürümü ByVal totalColumnas As String = "12" ByVal sayısı)
    As String Dim sütun ()
    As Integer Dim i
    Integer 'üçüncü harfi Dim j
    Integer 'ikinci harf Dim k
    Integer 'ilk harfini Dim l
    Tamsayı Dim Jaux gibi
    Tamsayı Dim kAux gibi
    i = 1
    Versiyonu> 11 Sonra ise
    ReDim kolonu (totalColumnas)
    j = 65
    k = 65
    l = 65
    Jaux = 65
    kAux = 0
    I totalColumnas 1 = için
    sütun: (i) = ChrW (j)
    j = j + 1
    J = 92 Then 'üçüncü, sonra yeniden doğmuş bitirmek ve ikinci harfi başlarsa
    "Ikinci mektup Başlıyor
    J = 65 için 90 için
    Denemek
    sütun: (i) = ChrW (k) ve ChrW (j)
    Daha sonra ise J = 90
    'Yeniden doğmuş üçüncü harfi ve ikinci harfi artırır
    j = 64
    k = k + 1
    End If
    i = i + 1

    'Ilk harf Başlıyor
    Sonra eğer k = 91
    k = 65
    Jaux için = 65 için 90
    sütun: (i) = ChrW (l) ve ChrW (k) ve ChrW (Jaux)
    Eğer Sonra Jaux = 90
    'Üçüncü harfi değiştirme
    Jaux = 64
    k = k + 1
    Sonra eğer k = 91
    A ve B anahtarı ve ilk harfi değişir: 'ejmplo tarafından ikinci harfi değiştirme
    k = 65 + kAux
    l = l + 1
    End If
    End If
    Sonra eğer l = 91
    'Için Çık ilk harfi biter
    End If
    i = i + 1
    Sonraki
    End If

    Sonra eğer k = 91
    'Ikinci mektubu bitirir için çıkın
    End If
    İstisna olarak Catch ex
    End Try
    Sonraki

    End If
    Sonraki

    Başka
    ReDim kolonu (totalColumnas)
    j = 65
    k = 65
    I totalColumnas 1 = için
    sütun: (i) = ChrW (j)
    j = j + 1
    Sonra eğer j = 92
    "Ikinci mektup Başlıyor
    J = 65 için 90 için
    Denemek
    sütun: (i) = ChrW (k) ve ChrW (j)
    Daha sonra ise J = 90
    j = 64
    k = k + 1
    End If
    i = i + 1
    İstisna olarak Catch ex
    End Try
    "İlk harf alfabesi Ends
    Sonra eğer k = 91
    Için Çık
    End If
    Sonraki

    End If
    Sonraki
    End If
    İade sütun (sayı)
    End Function

  28. Karloz diyor ki:

    Üzgünüm yanlış kod, ben bir önceki sürümü koymak, bu son versiyonudur.
    =)

    As String FtNombreColumna Fonksiyonu (As Integer Integer, ByVal totalColumnas ByVal numarası)
    As String Dim sütun ()
    As Integer Dim i
    Integer 'üçüncü harfi Dim j
    Integer 'ikinci harf Dim k
    Integer 'ilk harfini Dim l
    Tamsayı Dim Jaux gibi
    Tamsayı Dim kAux gibi
    i = 1
    Ardından 'Eğer sürüm> 11
    ReDim kolonu (totalColumnas)
    j = 65
    k = 65
    l = 65
    Jaux = 65
    kAux = 0
    I totalColumnas 1 = için
    sütun: (i) = ChrW (j)
    j = j + 1
    J = 92 Then 'üçüncü, sonra yeniden doğmuş bitirmek ve ikinci harfi başlarsa
    "Ikinci mektup Başlıyor
    J = 65 için 90 için
    Denemek
    sütun: (i) = ChrW (k) ve ChrW (j)
    Daha sonra ise J = 90
    'Yeniden doğmuş üçüncü harfi ve ikinci harfi artırır
    j = 64
    k = k + 1
    End If
    i = i + 1

    'Ilk harf Başlıyor
    Sonra eğer k = 91
    k = 65
    Jaux için = 65 için 90
    sütun: (i) = ChrW (l) ve ChrW (k) ve ChrW (Jaux)
    Eğer Sonra Jaux = 90
    'Üçüncü harfi değiştirme
    Jaux = 64
    k = k + 1
    Sonra eğer k = 91
    A ve B anahtarı ve ilk harfi değişir: 'ejmplo tarafından ikinci harfi değiştirme
    k = 65 + kAux
    l = l + 1
    End If
    End If
    Sonra eğer l = 91
    'Için Çık ilk harfi biter
    End If
    i = i + 1
    Sonraki
    End If

    Sonra eğer k = 91
    'Ikinci mektubu bitirir için çıkın
    End If
    İstisna olarak Catch ex
    End Try
    Sonraki

    End If
    Sonraki
    İade sütun (sayı)
    End Function

Yorum