Secara otomatis ekspor ke Microsoft Excel DataTable

Hari ini saya ingin menunjukkan contoh yang telah membantu saya untuk waktu yang lama namun saya masih menggunakannya.
Kami akan membuat contoh untuk mengekspor DataTable ke Excel penuh terlepas dari jumlah kolom atau baris yang memiliki.

Mungkin ada banyak cara untuk melakukan ini, tapi aku merasa sangat berguna karena metode ini bekerja untuk semua versi Excel. Untuk masalah compatilidad dengan versi terbaru dari Excel hanya menangani 256 kolom.

Hal pertama yang kita butuhkan adalah menambahkan referensi ke Microsoft.Office.Interop.Excel dan kita lakukan sebagai berikut:

Importar referencia a Excel

Impor referensi ke Excel

Importar referencia Excel

Impor Excel referensi

Kemudian kita perlu bentuk, tombol, DataGridView dan progress bar. Kita dapat memiliki seperti yang terlihat pada gambar:

Formulario aplicación para exportar dataset a excel

Formulir untuk ekspor dataset ke excel

Sekarang saya ingin menunjukkan semua kode benar-benar sederhana hal yang paling penting adalah bahwa menyesuaikan dengan tabel apapun. Anda akan dapat menggunakan kembali tanpa masalah.

 Impor System.Data Impor Public Class Form1 Impor System.Data.SqlClient ds Swasta Microsoft.Office.Interop Sebagai DataSet New (ByVal pengirim Sebagai System.Object, ByVal e Sebagai System.EventArgs) Private Sub Form1_Load Menangani 'MyBase.Load / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Buat koneksi dan isi DataGridView '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim cnn Sebagai SqlConnection Baru ("Data Source = localhost \ SQLEXPRESS; Katalog awal = Northwind; Keamanan Terpadu = True") Dim da SqlDataAdapter Baru ("* Pilih dari pelanggan", cnn) memberikan. Isi (ds) DataGridView1.DataSource ds.Tables = (0) End Sub Private Sub btnExportar_Click (ByVal sender Sebagai System.Object, ByVal e Sebagai System.EventArgs) Menangani btnExportar.Click '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Buat Object Excel / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim Dim Dim m_Excel objLibroExcel objHojaExcel m_Excel = CreateObject ("Excel.Application") m_Excel.Workbooks.Add objLibroExcel = () = objLibroExcel.Worksheets objHojaExcel (1) objHojaExcel.Name = "Pelanggan" objHojaExcel.Visible = Excel . XlSheetVisibility.xlSheetVisible objHojaExcel.Activate () '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / mendefinisikan dua variabel untuk mengontrol baris dan kolom' / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim baris As Integer 1 kolom = Dim As Integer = 1 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Kami menetapkan garis dengan judul kolom '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / objHojaExcel.Range ("A1"). Pilih () Untuk Setiap dc Dalam ds.Tables (0). Kolom objHojaExcel.Range (ColumnName (kolom) & 1). Nilai = dc.ColumnName kolom + = 1 baris Berikutnya + = 1 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Kami format baris judul' / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim Excel.Range = objHojaExcel.Range objRango ("A1:". & ColumnName (ds.Tables (0) Columns.Count) & "1") objRango.Font Bold = True objRango.Cells.Interior.ColorIndex. = 35 objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalDown). LineStyle = Excel.XlLineStyle.xlLineStyleNone objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalUp). LineStyle = Excel. XlLineStyle.xlLineStyleNone objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeLeft) LineStyle = Excel.XlLineStyle.xlLineStyleNone objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeRight).. LineStyle = Excel.XlLineStyle.xlContinuous objRango.Cells.Borders (Excel XlBordersIndex.xlEdgeTop).. LineStyle = objRango.Cells.Borders Excel.XlLineStyle.xlContinuous (Excel.XlBordersIndex.xlEdgeBottom). LineStyle Excel.XlLineStyle.xlContinuous = '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Load semua baris dalam DataTable' / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ProgressBar1.Maximum = ds.Tables (0). Rows.Count kolom ProgressBar1.Value = 1 = 0 Untuk Setiap kolom Rows dr Dalam ds.Tables (0). = 1 Untuk Setiap dc Dalam ds.Tables (0). Kolom objHojaExcel.Range (ColumnName (kolom) & baris). Nilai = dr (dc.ColumnName) kolom + = 1 baris Berikutnya + = 1 + = 1 Next ProgressBar1.Value '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Kami menyesuaikan lebar secara otomatis' / / untuk semua kolom yang digunakan '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / objRango = objHojaExcel.Range ("A1:".. & ColumnName (ds.Tables (0) Columns.Count) & ds.Tables (0) Rows.Count.ToString) objRango.Select () objRango Columns.AutoFit (.) '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /' / / Kami memberitahu Excel untuk menampilkan '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / MsgBox ("Ekspor ke Excel Lengkap" , MsgBoxStyle.Information, ":: solovb.net. ::.") m_Excel.Visible = True End Sub Fungsi ColumnName Publik (jumlah ByVal As Integer) As String Dim kolom (256) Sebagai kolom String (1) = "A" kolom (2) = "B" pilar (3) = "C" kolom (4) = "D" pilar (5) = "E" kolom (6) = "F" kolom (7) = "G" kolom ( 8) = "H" kolom (9) = "saya" kolom (10) = "J" kolom (11) = "K" kolom (12) = "L" kolom (13) = "M" kolom (14) = "N" kolom (15) = "B" kolom (16) = "P" kolom (17) = "Q" kolom (18) = "R" kolom (19) = "S" kolom (20) = " T "kolom (21) =" U "kolom (22) =" V "kolom (23) =" B "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" Kolom (34) = "AH" kolom (35) = "Jumlah" 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) = " SEBAGAI "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) = "BB" kolom (55) = "SM" 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) = "BY" 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) = "DD" 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) = "EC" 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) =" Uni Eropa " kolom (152) = "EV" 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) = "TA" 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) = "DIA" 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) = "JIKA" kolom (241) = "IG" kolom (242) = "IH" 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) = "R" kolom (253) = "IS" kolom (254) = "IT" kolom (255) = "UI" kolom (256) Akhir Kelas Fungsi = "IV" Kembali kolom (jumlah) End 

Metode ini telah membantu saya dan saya harap Anda melakukan terlalu ... silakan tinggalkan komentar Anda.

32 Responses to "Otomatis Ekspor DataTable ke Microsoft Excel"

  1. Bitacoras.com mengatakan:

    Informasi Bitacoras.com ...

    Laju Bitacoras.com: Hi, Hari ini saya ingin menunjukkan contoh yang telah membantu saya untuk waktu yang lama namun saya masih menggunakannya. Kami akan membuat contoh untuk mengekspor DataTable ke Excel penuh terlepas dari jumlah kolom atau baris yang teng .....

    • Carlos Linares mengatakan:

      Bagus ...

      Sangat baik posting! Terima kasih membantu saya penuh, tetapi saya memiliki keraguan .. Sebagai link adalah dengan sql .. Bagaimana cara mengubah nama kolom? Karena membawa nama bidang sql ..!

      Saya berharap dan saya telah memahami ..

      Terima kasih!

  2. denko mengatakan:

    Aku akan menghemat ...
    pada titik tertentu akan berguna ...

  3. Victor bilang:

    Apakah berlaku untuk Excel 2007? Saya memiliki masalah dengan ekspor untuk mengembangkan, bahwa itu berlaku untuk versi sebelumnya, tapi tidak untuk tahun 2007. Terima kasih

  4. John bilang:

    Besar sumber kode. membantu saya. q itu lama tertunda.

  5. John bilang:

    Meskipun juga perlu ecxel impor tabel data. tapi bisa jadi lingkungan untuk datagrid dan kemudian memperbarui DataAdapter dan menerima perubahan dalam DataTable akan disimpan dalam bd q ... Saya harap saya bisa membantu atau untuk menemukan .. terima kasih

  6. jose mengatakan:

    Hi Terima kasih banyak! ini sangat baik!
    Tapi saya ingin tahu di mana datagrid menetapkan bahwa digunakan dalam kasus yang beberapa datagrid?

    • Carlos Linares mengatakan:

      Di atas meja Anda sedang telepon ...

      select * from (nama tabel)

      Jika Anda ingin menentukan bidang yang Anda inginkan

      pilih (ladang, sawah, ladang) * dari meja
      EJM
      pilih mobil, warna, tahun dari mobil

  7. Beto mengatakan:

    Aku punya masalah dengan contoh ini saya membuat 2 kesalahan dalam variabel dc dan dr, saya bisa lakukan untuk memperbaikinya?

    • Elisa mengatakan:

      Hi, coba ini:
      Untuk Setiap dr Sebagai DataRow Dalam ds.Tables (0). Baris dan DataColumn Untuk Setiap dc Dalam ds.Tables sebagai (0). Kolom

      Saya berharap bahwa ini teratasi. Salam.

  8. jason mengatakan:

    hola.
    chevere ini, tetapi bagian dari nama kolom tidak sangat fungsional.
    Saya akan upload ke blog saya sebuah keterbatasan kode jauh lebih kecil ukuran dan tanpa

    jaysson.blogspot.com

  9. Rodrigo mengatakan:

    Baik artikel, tapi saya punya masalah di komputer saya dengan Excel 2007 bekerja lancar, tetapi dengan komputer dengan Excel 2003 atau sebelumnya tidak bekerja. Ada yang tahu jika masalah perpustakaan yang diimpor, karena Anda menyiratkan bahwa bekerja untuk excel, tapi saya menemui masalah ini.

    Mari kita lihat jika seseorang dapat memecahkan keraguan.
    Terima kasih.

  10. Carlos Linares mengatakan:

    Bagus ...

    Sangat baik posting! Terima kasih membantu saya penuh, tetapi saya memiliki keraguan .. Sebagai link adalah dengan sql .. Bagaimana cara mengubah nama kolom? Karena membawa nama bidang sql ..!

    Saya berharap dan saya telah memahami ..

    Terima kasih!

  11. Alexander mengatakan:

    Public Sub ExportarDatosExcel (ByVal DataGridView1 Sebagai DataGridView, judul ByVal As String)
    Sebagai Excel.Application Dim Baru m_Excel
    m_Excel.Cursor = Excel.XlMousePointer.xlWait
    m_Excel.Visible = True
    Sebagai Excel.Workbook Dim objLibroExcel = m_Excel.Workbooks.Add
    Sebagai Excel.Worksheet Dim objHojaExcel = objLibroExcel.Worksheets (1)
    Dengan objHojaExcel
    Visible =. Excel.XlSheetVisibility.xlSheetVisible
    Aktifkan (.)
    'Header
    Range ("A1: L1").. Merge ()
    . Range ("A1: L1") Nilai = "LEMBAGA ARGENCAF".
    Range ("A1: L1").. Font.Bold = True
    . Range ("A1: L1") Font.Size = 15.
    'Tuft
    Range ("A2: L2").. Merge ()
    Range ("A2: L2").. Nilai = judul
    Range ("A2: L2").. Font.Bold = True
    Range ("A2: L2").. Font.Size = 12

    Const primeraLetra Sebagai Char = "A"
    Const firstNumber Sebagai pendek = 3
    Dim surat Sebagai Char, Char Sebagai UltimaLetra
    Dim Jumlah As Integer, As Integer UltimoNumero
    Dim As Byte = Asc cod_letra (primeraLetra) - 1
    Dim As String = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator sepDec
    Dim As String = Application.CurrentCulture.NumberFormat.NumberGroupSeparator sepMil
    'Set format kolom puteri perhitungan
    StrColumna Dim As String = ""
    LetraIzq Dim As String = ""
    Dim As Byte = Asc cod_LetraIzq (primeraLetra) - 1
    Surat = primeraLetra
    Jumlah = firstNumber
    Sebagai Excel.Range Dim objCelda
    Untuk Setiap c Sebagai DataGridViewColumn Dalam DataGridView1.Columns
    Kemudian jika c.Visible
    Jika Surat = "Z" Lalu
    Surat = primeraLetra
    cod_letra = Asc (primeraLetra)
    cod_LetraIzq + = 1
    LetraIzq = Chr (cod_LetraIzq)
    Lain
    cod_letra + = 1
    Surat = 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
    Jika c.ValueType Apakah GetType (Desimal) OrElse c.ValueType Apakah GetType (Double) Lalu
    objCelda.EntireColumn.NumberFormat = "#" + sepMil + "0" + sepDec + "00"
    End If
    End If
    Berikutnya

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

    "LOAD DATA
    Dim i As Integer = Jumlah + 1

    Untuk Setiap Dalam Daftar Sebagai DataGridViewRow DataGridView1.Rows
    LetraIzq = ""
    cod_LetraIzq = Asc (primeraLetra) - 1
    Surat = primeraLetra
    cod_letra = Asc (primeraLetra) - 1
    Untuk Setiap c Sebagai DataGridViewColumn Dalam DataGridView1.Columns
    Kemudian jika c.Visible
    Jika Surat = "Z" Lalu
    Surat = primeraLetra
    cod_letra = Asc (primeraLetra)
    cod_LetraIzq + = 1
    LetraIzq = Chr (cod_LetraIzq)
    Lain
    cod_letra + = 1
    Surat = Chr (cod_letra)
    End If
    strColumna = LetraIzq + Lyrics
    "Di sini harus beban
    Sel (i, strColumna). = IIF (IsDBNull (reg.ToString), "", reg.Cells (c.Index). Nilai)
    'Sel (i, strColumna). = IIF (IsDBNull (reg. (c.DataPropertyName)), c.DefaultCellStyle.NullValue, reg (c.DataPropertyName))
    'Range (strColumna + i, strColumna + i).. Dalam ()

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

    "Buat garis dari kolom
    LetraIzq = ""
    cod_LetraIzq = Asc ("A")
    cod_letra = Asc (primeraLetra)
    Surat = primeraLetra
    Untuk Setiap c Sebagai DataGridViewColumn Dalam DataGridView1.Columns
    Kemudian jika c.Visible
    . objCelda = Range (LetraIzq + Lyrics + primerNumero.ToString, LetraIzq + Lyrics + (UltimoNumero -. 1) ToString)
    objCelda.BorderAround ()
    Jika Surat = "Z" Lalu
    Surat = primeraLetra
    cod_letra = Asc (primeraLetra)
    LetraIzq = Chr (cod_LetraIzq)
    cod_LetraIzq + = 1
    Lain
    cod_letra + = 1
    Surat = Chr (cod_letra)
    End If
    End If
    Berikutnya

    'Gambarkan batas luar tebal
    Sebagai 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)
    Akhir Dengan

    m_Excel.Cursor = Excel.XlMousePointer.xlDefault
    End Sub

    ToolStripButton2_Click_1 Private Sub (ByVal pengirim Sebagai System.Object, ByVal e Sebagai System.EventArgs) Menangani ToolStripButton2.Click
    ExportarDatosExcel (DataGridView1, "ekspor")
    End Sub

  12. JuanPeople mengatakan:

    EXCELLENT!! .... terima kasih saudara, dan mengambil 3 hari dengan modul untuk impor / ekspor Excel dan tidak ada yang berhasil .... tapi dengan solusi Anda, saya melihat lagi bintang-bintang ... salam dari Arequipa! ..

  13. TECKNOCK mengatakan:

    Kode ini banyak membantu saya, jadi saya berkolaborasi dengan dua sen:

    Telah mengoptimalkan "ColumnName" tiba ahsta kolom ZZ (702 et al.)

    Di sini saya memberikan kode:

    Public Function ColumnName (jumlah ByVal 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) = "aku"
    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
    Untuk Ltr1 = 1 Untuk 26
    Untuk Ltr2 = 1 Untuk 26
    kolom (i) = kolom (Ltr1) & kolom (Ltr2)
    i + = 1
    Berikutnya
    Berikutnya

    Kembali kolom (angka)
    End Function

    • Elisa mengatakan:

      TECKNOCK, terima kasih banyak untuk membantu, Tapi! Perlu diingat bahwa jika kita membuat buku ini kompatibel dengan Excel 97-2003 kolom maksimum yang diizinkan adalah 256 (untuk IV). Sama seperti komentar untuk mempertimbangkan ini.

      Elisa

  14. raysip mengatakan:

    Ketika saya menjalankan aplikasi lokal funcioana benar, tetapi ketika saya upload di website tidak menghasilkan unggul tetapi tidak mendapatkan error

  15. Aderson mengatakan:

    Saya mencari haciend soket untuk saya sql

    tidak seperti yang saya lakukan tetapi Aku akan melakukan aja

  16. Paulus mengatakan:

    Aku butuh bantuan mencoba untuk melakukannya setiap cara Anda di sini dan saya mendapatkan error semua

  17. JOHN mengatakan:

    Tangan, Anda adalah maksimum funca sempurna.

  18. Neji mengatakan:

    sangat baik, selamat yang di posting terbaik yang pernah membaca dan berkonsultasi

  19. Patricia bilang:

    Terima kasih! Ini sangat membantu

  20. f.delgado mengatakan:

    Hei kode tidak bekerja pada saya menandai kesalahan da.Fill (ds)

    Saya menandai kesalahan tidak ditemukan SQLException

    Anda dapat membantu saya

  21. JAV mengatakan:

    satu pertanyaan dapat membuat loading query sql langsung ke excel?

    sebelumnya dengan perantaraan

  22. Delfino Morales mengatakan:

    halo pertama-tama Anda agradesco kontribusi teman Anda.
    Perhatikan bahwa saya punya masalah saya tidak dapat menemukan referensi yang Anda tentukan, saya telah menginstal kantor 2010 dan yang tidak dapat masalah saya.
    agradeseria beberapa saran untuk Anda.

  23. Amerika mengatakan:

    Halo, kontribusi yang sangat baik adalah apa yang saya cari ... tapi ketika saya menjalankannya dari server pengembangan bekerja sempurna, tetapi ketika saya mengakses web dari pc lain tidak apa-apa ... tidak ada kesalahan tetapi tidak apa-apa tidak merekam ...

    Ada yang tahu bagaimana memperbaikinya?

  24. Azofeifa Hernan mengatakan:

    Terima kasih banyak, membantu saya contoh Anda sebagai dasar untuk menghasilkan sebuah fungsi yang menghasilkan saya file Excel tetapi langsung dari nilai-nilai yang tersimpan dalam kotak adalah apa dejor kasus ini berguna bagi seseorang

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Kami membuat garis dengan judul kolom
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objHojaExcel.Range ("A1"). Pilih ()
    Dim saya As Integer = 0
    Lncol Dim As Integer = 1
    Untuk Setiap dc Dalam dgvSocios.Columns

    Jika dgvSocios.Columns.Item (I). Visible = Benar Kemudian
    objHojaExcel.Range (ColumnName (lncol) & 1). Nilai = dgvSocios.Columns.Item (I). HeaderText
    lncol + = 1
    End If
    Aku + = 1
    Berikutnya
    baris + = 1

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Kami memformat judul baris
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Sebagai Excel.Range Dim objRango = objHojaExcel.Range ("A1:" & ColumnName (lncol) & "1")
    objRango.Font.Bold = True
    objRango.Cells.Interior.ColorIndex = 35

    objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalDown) LineStyle =. Excel.XlLineStyle.xlLineStyleNone
    objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalUp) LineStyle =. Excel.XlLineStyle.xlLineStyleNone
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeLeft) LineStyle =. Excel.XlLineStyle.xlLineStyleNone
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeRight) LineStyle =. Excel.XlLineStyle.xlContinuous
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeTop) LineStyle =. Excel.XlLineStyle.xlContinuous
    objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeBottom) LineStyle =. Excel.XlLineStyle.xlContinuous

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Load semua baris dalam DataTable
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    ProgressBar1.Maximum = dgvSocios.Rows.Count
    kolom = 0
    ProgressBar1.Value = 0
    ProgressBar1.Visible = True
    Lnfila Dim As Integer = 0
    I = 1
    Untuk Setiap dr Dalam dgvSocios.Rows
    kolom = 0

    Untuk Setiap dc Dalam dgvSocios.Columns
    Jika dgvSocios.Columns.Item (kolom). Visible = Benar Kemudian
    objHojaExcel.Range (ColumnName (I) & baris). Nilai = dgvSocios.Item (kolom, lnfila). Value.ToString
    Aku + = 1
    End If
    kolom + = 1
    Berikutnya
    lnfila + = 1
    baris + = 1
    ProgressBar1.Value + = 1
    Berikutnya

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Kami menyesuaikan lebar secara otomatis
    '/ / Dari semua kolom yang digunakan
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objRango = objHojaExcel.Range ("A1:" & ColumnName (lncol) & (lnfila + 1) ToString.)
    objRango.Select ()
    objRango.Columns.AutoFit ()

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Kami memberitahu Excel untuk menampilkan
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    MsgBox ("Ekspor ke Excel Lengkap", MsgBoxStyle.Information, ":: Solovb.net. ::.")
    m_Excel.Visible = True

  25. Pako mengatakan:

    Membawa sedikit untuk fungsi ini, kode berikut mencegah penggunaan "Range" untuk tidak memerlukan fungsi "ColumnName"

    Salam,

    Impor System.Data
    Impor System.Data.SqlClient
    Impor Microsoft.Office.Interop.Excel
    Publik Modul mutil
    Public Sub ExportarDtToExcel (ByVal Dt Sebagai System.Data.DataTable, judul ByVal As String)
    Sebagai Excel.Application Dim m_Excel
    Sebagai Excel.Workbook Dim objLibroExcel
    Sebagai Lembar Kerja Dim objHojaExcel
    Mencoba
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Buat Object Excel
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    m_Excel = CreateObject ("Excel.Application")
    m_Excel.Workbooks.Add objLibroExcel = ()
    objHojaExcel = objLibroExcel.Worksheets (1)
    objHojaExcel.Name = Judul
    objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible
    objHojaExcel.Activate ()

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Tentukan dua variabel untuk mengontrol baris dan kolom
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Dim baris As Integer = 1
    Dim kolom As Integer = 1

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Kami membuat garis dengan judul kolom
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    'ObjHojaExcel.Range ("A1"). Pilih ()

    objHojaExcel.Cells (baris, kolom). SELECT ()
    Untuk Setiap dc Dalam Dt.Columns
    objHojaExcel.Cells (baris, kolom). Nilai = dc.ColumnName
    kolom + = 1
    Berikutnya
    baris + = 1

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Kami memformat judul baris
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Sebagai Excel.Range objRango = redup 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

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Load semua baris dalam DataTable
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

    kolom = 1

    Untuk Setiap dr Dalam Dt.Rows
    kolom = 1
    Untuk Setiap dc Dalam Dt.Columns
    objHojaExcel.Cells (baris, kolom). Nilai = dr (dc.ColumnName)
    kolom + = 1
    Berikutnya
    baris + = 1

    Berikutnya

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Kami menyesuaikan lebar secara otomatis
    '/ / Dari semua kolom yang digunakan
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objHojaExcel.Cells objRango = (1, Dt.Columns.Count)
    objRango.Select ()
    objRango.Columns.AutoFit ()

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Kami memberitahu Excel untuk menampilkan
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    MsgBox ("Ekspor ke Excel Lengkap" MsgBoxStyle.Information, "Ekspor")
    m_Excel.Visible = True

    Menangkap mantan Sebagai Exception

    MsgBox (ex.ToString)

    Akhirnya

    objHojaExcel = Tidak ada
    objLibroExcel = Tidak ada
    m_Excel = Tidak ada

    Akhir Coba
    End Sub

    Akhir Modul

Komentar