Автоматичний експорт в Microsoft Excel DataTable

Сьогодні я хочу показати приклад, який служив мені протягом тривалого часу і все ж я до сих пір використовують його.
Ми зробимо Наприклад, щоб експортувати в Excel DataTable повної незалежно від того, число стовпців або рядків, які є.

Там може бути багато способів зробити це, але я знаходжу це дуже корисним, так як цей метод працює для будь-якої версії Excel. Для compatilidad проблеми з новими версіями Excel обробляти тільки 256 стовпців.

Перше, що нам потрібно, це додати посилання на Microsoft.Office.Interop.Excel і ми робимо таким чином:

Importar referencia a Excel

Імпорт посилання на Excel

Importar referencia Excel

Імпорт Excel посилання

Потім нам потрібно форму, кнопки, DataGridView і прогрес-бар. Ми можемо, як показано на малюнку:

Formulario aplicación para exportar dataset a excel

Заявка на експорт даних в Excel

Тепер я хочу, щоб показати весь код дуже простий найголовніше, що він пристосовується до будь-якого столу. Ви зможете використовувати без проблем.

  Імпорт System.Data
 Imports System.Data.SqlClient
 Імпорт Microsoft.Office.Interop

 Public Class Form1
     Приватне DS As New DataSet

     Private Sub Form1_Load (ByVal відправника як System.Object, ByVal електронної Як System.EventArgs) Ручки MyBase.Load
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Створити з'єднання і заповнити DataGridView
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         Dim CNN As New SqlConnection ("Data Source = локальний \ SQLEXPRESS; Initial Catalog = Northwind; Integrated Security = True")
         Dim та як новий SqlDataAdapter ("SELECT * FROM клієнтів», CNN)
         da.Fill (DS)
         DataGridView1.DataSource = ds.Tables (0)
     End Sub

     BtnExportar_Click Private Sub (ByVal відправника як System.Object, ByVal електронної Як System.EventArgs) Ручки btnExportar.Click
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Створення об'єкта Excel
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         Dim m_Excel
         Dim objLibroExcel
         Dim objHojaExcel
         m_Excel = CreateObject ("Excel.Application")
         m_Excel.Workbooks.Add objLibroExcel = ()
         objHojaExcel = objLibroExcel.Worksheets (1)
         objHojaExcel.Name = "Клієнти"
         objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible
         objHojaExcel.Activate ()

         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Визначення двох змінних контролювати рядка і стовпця
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         Dim рядок As Integer = 1
         Dim колонці As Integer = 1

         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Ми встановлюємо відповідність із заголовками стовпців
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         objHojaExcel.Range ("A1"). Виберіть ()
         Для кожного постійного струму в ds.Tables (0). Стовпці
             objHojaExcel.Range (ColumnName (колонки) і 1). Value = dc.ColumnName
             колонки + = 1
         Наступний
         рядок + = 1

         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Ми форматування рядка назви
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         Як Excel.Range Dim objRango = objHojaExcel.Range ("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 = Excel.XlLineStyle.xlContinuous
         objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeBottom). LineStyle = Excel.XlLineStyle.xlContinuous

         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Завантажити всі рядки в DataTable
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         ProgressBar1.Maximum = ds.Tables (0). Rows.Count
         колонка = 1
         ProgressBar1.Value = 0
         Для кожного ін В ds.Tables (0). Рядки
             колонка = 1
             Для кожного постійного струму в ds.Tables (0). Стовпці
                 objHojaExcel.Range (ColumnName (колонки) і рядки). Value = DR (dc.ColumnName)
                 колонки + = 1
             Наступний
             рядок + = 1
             ProgressBar1.Value + = 1
         Наступний

         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Ми регулювати ширину автоматично
         '/ / З усіх шпальт, використовуваних
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         objRango = objHojaExcel.Range ("A1" і ColumnName (ds.Tables (0) Columns.Count) і ds.Tables (0) Rows.Count.ToString.).
         objRango.Select ()
         objRango.Columns.AutoFit ()

         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         '/ / Ми говоримо Excel для відображення
         '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
         MsgBox ("Експорт в Excel Complete", MsgBoxStyle.Information ». :: Solovb.net ::").
         m_Excel.Visible = True

     End Sub

     Громадський ColumnName функції (ByVal число As Integer) As String
         Dim колонки (256) As String

         Колонка (1) = "A"
         стовпці (2) = "B"
         колонці (3) = "C"
         стовпці (4) = "D"
         колонки (5) = "E"
         колонка (6) = "F"
         стовпці (7) = "G"
         колонка (8) = "H"
         колонка (9) = "Я"
         колонки (10) = "J"
         колонки (11) = "К"
         колонки (12) = "L"
         колонки (13) = "M"
         колонки (14) = "N"
         колонки (15) = "O"
         колонки (16) = "P"
         колонки (17) = "Q"
         колонки (18) = "R"
         колонки (19) = "S"
         колонки (20) = "T"
         колонки (21) = "U"
         колонки (22) = "V"
         колонки (23) = "W"
         колонки (24) = "X"
         колонки (25) = "Y"
         колонки (26) = "Z"
         колонки (27) = "AA"
         колонки (28) = "AB"
         колонки (29) = "AC"
         колонки (30) = "AD"
         колонки (31) = "AE"
         колонки (32) = "АФ"
         колонки (33) = "AG"
         колонки (34) = "AH"
         колонки (35) = "AI"
         колонки (36) = "AJ"
         колонки (37) = "АК"
         колонки (38) = "AL"
         колонки (39) = "AM"
         колонки (40) = ""
         колонки (41) = "AO"
         колонки (42) = "AP"
         колонки (43) = "AQ"
         колонки (44) = "АР"
         колонки (45) = "AS"
         колонки (46) = "AT"
         колонки (47) = "UA"
         колонки (48) = "AV"
         колонки (49) = "AW"
         колонки (50) = "AX"
         колонки (51) = "AY"
         колонки (52) = "AZ"
         колонки (53) = "ВА"
         колонки (54) = "BB"
         колонки (55) = "BC"
         колонки (56) = "BD"
         колонки (57) = "BE"
         колонки (58) = "BF"
         колонки (59) = "БГ"
         колонки (60) = "ВН"
         колонки (61) = "BI"
         колонки (62) = "BJ"
         колонки (63) = "ВК"
         колонки (64) = "BL"
         колонки (65) = "ВМ"
         колонки (66) = "BN"
         колонки (67) = "ВО"
         колонки (68) = "BP"
         колонки (69) = "BQ"
         колонки (70) = "БР"
         колонки (71) = "BS"
         колонки (72) = "БТ"
         колонки (73) = "БО"
         колонки (74) = "BV"
         колонки (75) = "BW"
         колонки (76) = "ВХ"
         колонки (77) = "ПО"
         колонки (78) = "BZ"
         колонки (79) = "CA"
         колонки (80) = "КБ"
         колонки (81) = "CC"
         колонки (82) = "CD"
         колонки (83) = "CE"
         колонки (84) = "CF"
         колонки (85) = "CG"
         колонки (86) = "Ч"
         колонки (87) = "ДІ"
         колонки (88) = "CJ"
         колонки (89) = "СК"
         колонки (90) = "CL"
         колонки (91) = "СМ"
         колонки (92) = "CN"
         колонки (93) = "СТ"
         колонки (94) = "СР"
         колонки (95) = "CQ"
         колонки (96) = "CR"
         колонки (97) = "CS"
         колонки (98) = "СТ"
         колонки (99) = "КС"
         колонки (100) = "CV"
         колонки (101) = "CW"
         колонки (102) = "CX"
         колонки (103) = "СУ"
         колонки (104) = "CZ"
         колонки (105) = "DA"
         колонки (106) = "DB"
         колонки (107) = "DC"
         колонки (108) = "DD"
         колонки (109) = "DE"
         колонки (110) = "DF"
         колонки (111) = "DG"
         колонки (112) = "DH"
         колонки (113) = "ID"
         колонки (114) = "DJ"
         колонки (115) = "ДК"
         колонки (116) = "DL"
         колонки (117) = "DM"
         колонки (118) = "DN"
         колонки (119) = "DO"
         колонки (120) = "ДП"
         колонки (121) = "DQ"
         колонки (122) = "DR"
         колонки (123) = "DS"
         колонки (124) = "DT"
         колонки (125) = "DU"
         колонки (126) = "ДВ"
         колонки (127) = "DW"
         колонки (128) = "DX"
         колонки (129) = "DY"
         колонки (130) = "ДЗ"
         колонки (131) = "EA"
         колонки (132) = "EB"
         колонки (133) = "ВК"
         колонки (134) = "ED"
         колонки (135) = "EE"
         колонки (136) = "EF"
         колонки (137) = "ЕГ"
         колонки (138) = "ЕН"
         колонки (139) = "ЕІ"
         колонки (140) = "EJ"
         колонки (141) = "ЕК"
         колонки (142) = "ON"
         колонки (143) = "MS"
         колонки (144) = "EN"
         колонки (145) = "ЕО"
         колонки (146) = "EP"
         колонки (147) = "EQ"
         колонки (148) = "Швидка допомога"
         колонки (149) = "ES"
         колонки (150) = "ET"
         колонки (151) = "ЄС"
         колонки (152) = "ЕВ"
         колонки (153) = "РЕБ"
         колонки (154) = "EX"
         колонки (155) = "Ернст енд Янг"
         колонки (156) = "EZ"
         колонки (157) = "FA"
         колонки (158) = "FB"
         колонки (159) = "ФК"
         колонки (160) = "ФД"
         колонки (161) = "ІП"
         колонки (162) = "FF"
         колонки (163) = "FG"
         колонки (164) = "FH"
         колонки (165) = "FI"
         колонки (166) = "FJ"
         колонки (167) = "ФК"
         колонки (168) = "FL"
         колонки (169) = "FM"
         колонки (170) = "FN"
         колонки (171) = "FO"
         колонки (172) = "FP"
         колонки (173) = "CF"
         колонки (174) = "FR"
         колонки (175) = "FS"
         колонки (176) = "FT"
         колонки (177) = "ФУ"
         колонки (178) = "PV"
         колонки (179) = "FW"
         колонки (180) = "FX"
         колонки (181) = "фінансовий"
         колонки (182) = "ФЗ"
         колонки (183) = "ГА"
         колонки (184) = "RU"
         колонки (185) = "ГК"
         колонки (186) = "GD"
         колонки (187) = "GE"
         колонки (188) = "GF"
         колонки (189) = "GG"
         колонки (190) = "GH"
         колонки (191) = "GI"
         колонки (192) = «ГР»
         колонки (193) = "ГК"
         колонки (194) = "GL"
         колонки (195) = "GM"
         колонки (196) = "GN"
         колонки (197) = "ВПЕРЕД"
         колонки (198) = "GP"
         колонки (199) = "GQ"
         колонки (200) = "GR"
         колонки (201) = "GS"
         колонки (202) = "GT"
         колонки (203) = "ГУ"
         колонки (204) = "Г.В."
         колонки (205) = "GW"
         колонки (206) = "GX"
         колонки (207) = "GY"
         колонки (208) = "Вітаю"
         колонки (209) = "HA"
         колонки (210) = "НВ"
         колонки (211) = "ХК"
         колонки (212) = "HD"
         колонки (213) = "HE"
         колонки (214) = "КВ"
         колонки (215) = "HG"
         колонки (216) = "АА"
         колонки (217) = "HI"
         колонки (218) = "HJ"
         колонки (219) = "ХК"
         колонки (220) = "HL"
         колонки (221) = "НМ"
         колонки (222) = "HN"
         колонки (223) = "HO"
         колонки (224) = "HP"
         колонки (225) = "HQ"
         колонки (226) = "HR"
         колонки (227) = "HS"
         колонки (228) = "HT"
         колонки (229) = "ху"
         колонки (230) = "HV"
         колонки (231) = "HW"
         колонки (232) = "H"
         колонки (233) = "HY"
         колонки (234) = "HZ"
         колонки (235) = "ІА"
         колонки (236) = "IB"
         колонки (237) = "СК"
         колонки (238) = "ID"
         колонки (239) = "IE"
         колонки (240) = "IF"
         колонки (241) = "ІГ"
         колонки (242) = "IH"
         колонки (243) = "II"
         колонки (244) = "IJ"
         колонки (245) = "ІК"
         колонки (246) = «Іл»
         колонки (247) = "ІМ"
         колонки (248) = "В"
         колонки (249) = "IO"
         колонки (250) = "IP"
         колонки (251) = "IQ"
         колонки (252) = "R"
         колонки (253) = "Є"
         колонки (254) = "IT"
         колонки (255) = "МЕ"
         колонки (256) = "IV"

         Повернутися колонки (номер)
     End Function
 End Class 

Цей метод служить мені добре, і я сподіваюся, ти теж ... Будь ласка, залишайте свої коментарі.

32 Відповідей на "Автоматично Експорт DataTable в Microsoft Excel"

  1. Bitacoras.com каже:

    Інформація Bitacoras.com ...

    Ставка в Bitacoras.com: Привіт, сьогодні я хочу показати приклад, який служив мені протягом тривалого часу і все ж я до сих пір використовують його. Ми зробимо Наприклад, щоб експортувати в Excel DataTable повної незалежно від того, число стовпців або рядків, які Ден .....

    • Карлос Лінарес каже:

      Добре ...

      Відмінний пост! Спасибі, допомогли мені повністю, але в мене є сумніви .. Оскільки зв'язок з SQL .. Як перейменувати стовпці?! Тому що це приносить назви полів SQL! ..

      Я сподіваюся і я зрозуміла ..

      Спасибо!

  2. Denko каже:

    Я збираюся зберегти ...
    в якийсь момент вона буде корисна ...

  3. Віктор каже:

    Хіба це справедливо для Excel 2007? У мене були проблеми з експортом в розробці, що вона справедлива для більш ранніх версій, але не в 2007 році. Спасибо

  4. Джон каже:

    Величезні вихідним кодом. послужила мені хорошу службу. д це було давно.

  5. Джон каже:

    Хоча необхідно також ecxel імпорт табличних даних. але може бути екологічним до сітки, а потім оновлення DataAdapter і прийняти зміни в DataTable буде збережений в д бул ... Я сподіваюся, що зможу допомогти або знайти .. спасибі

  6. Жозе каже:

    Привіт велике спасибі! це чудово!
    Але мені цікаво, де сітці вказує, що використовується у випадку, який кілька DataGrid?

    • Карлос Лінарес каже:

      На столі ви за викликом ...

      SELECT * FROM (ім'я таблиці)

      Якщо ви хочете вказати, які поля ви хочете

      select (поля, поля, поля) * з таблиці
      EJM
      вибрати автомобіль, колір, рік від автомобіля

  7. Бето сказав:

    У мене є проблема з цим прикладом я можу зробити 2 помилки в змінних постійного струму та інші, я можу зробити, щоб виправити це?

    • Єлисей сказав:

      Привіт, спробуйте наступне:
      Для кожного ін В DataRow в ds.Tables (0). Рядки і DataColumn Для кожного постійного струму в якості ds.Tables (0). Стовпці

      Я сподіваюся, що це не буде вирішена. Привіт.

  8. Джейсон говорить:

    Hola.
    це chevere, але частина імені стовпця не дуже функціонально.
    Я буду завантажувати на моєму блозі набагато менше обмежень розміру коду і без

    jaysson.blogspot.com

  9. Джейсон говорить:

    готові та пішов вгору за статтею

    http://jaysson.blogspot.com/2010/06/columnas-es-excel.html

  10. Родріго каже:

    Хороша стаття, але у мене є проблема на моєму комп'ютері з Excel 2007 року працює плавно, але з комп'ютерами з Excel 2003 або більш ранніх версій не працює. Хто знає, якщо проблема бібліотек, які імпортуються, так як ви це означає, що для будь-якої роботи Excel, але я зіткнувся з цією проблемою.

    Давайте подивимося, якщо хтось може вирішити сумніви.
    Спасибо.

  11. Карлос Лінарес каже:

    Добре ...

    Відмінний пост! Спасибі, допомогли мені повністю, але в мене є сумніви .. Оскільки зв'язок з SQL .. Як перейменувати стовпці?! Тому що це приносить назви полів SQL! ..

    Я сподіваюся і я зрозуміла ..

    Спасибо!

  12. Олександр каже:

    Public Sub ExportarDatosExcel (ByVal DataGridView1 як DataGridView, ByVal назвою As String)
    У Новій Excel.Application Dim m_Excel
    m_Excel.Cursor = Excel.XlMousePointer.xlWait
    m_Excel.Visible = True
    Як Excel.Workbook Dim objLibroExcel = m_Excel.Workbooks.Add
    Як Excel.Worksheet Dim objHojaExcel = objLibroExcel.Worksheets (1)
    З objHojaExcel
    . Visible = Excel.XlSheetVisibility.xlSheetVisible
    . Включити ()
    "Заголовок
    . Range ("A1: L1"). Злиття ()
    . Range ("A1: L1"). Value = "ІНСТИТУТ ARGENCAF"
    . Range ("A1: L1"). Font.Bold = True
    . Range ("A1: L1"). Font.Size = 15
    "Тафт
    . Range ("A2: L2"). Злиття ()
    . Range ("A2: L2"). Value = назву
    . Range ("A2: L2"). Font.Bold = True
    . Range ("A2: L2"). Font.Size = 12

    Const primeraLetra Як Char = "A"
    Const firstNumber коротше = 3
    Dim лист як Char, Char Як UltimaLetra
    Dim Кількість As Integer, UltimoNumero As Integer
    Dim As Byte = Asc cod_letra (primeraLetra) - 1
    Dim As String = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator sepDec
    Dim As String = Application.CurrentCulture.NumberFormat.NumberGroupSeparator sepMil
    "Встановити формат стовпців дочка розрахунок
    StrColumna Dim As String = ""
    LetraIzq Dim As String = ""
    Dim As Byte = Asc cod_LetraIzq (primeraLetra) - 1
    Лист = primeraLetra
    FirstNumber Number =
    Як Excel.Range Dim objCelda
    Для кожного в якості DataGridViewColumn В DataGridView1.Columns
    Тоді, якщо c.Visible
    Якщо лист = "Z" Тоді
    Лист = primeraLetra
    cod_letra = Asc (primeraLetra)
    cod_LetraIzq + = 1
    LetraIzq = Chr (cod_LetraIzq)
    Ще
    cod_letra + = 1
    Лист = Chr (cod_letra)
    End If
    strColumna = LetraIzq + тексти + Numero.ToString
    objCelda =. Range (strColumna, Type.Missing)
    objCelda.Value = c.HeaderText
    objCelda.EntireColumn.Font.Size = 8
    "ObjCelda.EntireColumn.NumberFormat = c.DefaultCellStyle.Format
    Якщо c.ValueType чи GetType (Decimal) OrElse c.ValueType чи GetType (Double), тоді
    objCelda.EntireColumn.NumberFormat = "#" + sepMil + "0" + sepDec + "00"
    End If
    End If
    Наступний

    Як Excel.Range Dim objRangoEncab =. Range (primeraLetra + Numero.ToString, LetraIzq + тексти + Numero.ToString)
    objRangoEncab.BorderAround (1, Excel.XlBorderWeight.xlMedium)
    UltimaLetra = Відправити
    Dim As String = LetraIzq UltimaLetraIzq

    "Завантаження даних
    Dim я As Integer = Кількість + 1

    Для кожного в списку Як DataGridViewRow DataGridView1.Rows
    LetraIzq = ""
    cod_LetraIzq = Asc (primeraLetra) - 1
    Лист = primeraLetra
    cod_letra = Asc (primeraLetra) - 1
    Для кожного в якості DataGridViewColumn В DataGridView1.Columns
    Тоді, якщо c.Visible
    Якщо лист = "Z" Тоді
    Лист = primeraLetra
    cod_letra = Asc (primeraLetra)
    cod_LetraIzq + = 1
    LetraIzq = Chr (cod_LetraIzq)
    Ще
    cod_letra + = 1
    Лист = Chr (cod_letra)
    End If
    strColumna = LetraIzq + Тексти
    "Тут повинна бути навантаження
    . Cells (я, strColumna) = IIf (IsDBNull (reg.ToString), "", reg.Cells (c.Index). Value)
    . Cells (я, strColumna) = IIf (IsDBNull (рег. (c.DataPropertyName)), c.DefaultCellStyle.NullValue, рег (c.DataPropertyName))
    . Range (strColumna + я, strColumna + I). В ()

    End If
    Наступний
    Як Excel.Range Dim objRangoReg =. Range (primeraLetra + i.ToString, i.ToString strColumna +)
    objRangoReg.Rows.BorderAround ()
    objRangoReg.Select ()
    я + = 1
    Наступний
    UltimoNumero = я

    "Малювати лінії стовпців
    LetraIzq = ""
    cod_LetraIzq = Asc ("A")
    cod_letra = Asc (primeraLetra)
    Лист = primeraLetra
    Для кожного в якості DataGridViewColumn В DataGridView1.Columns
    Тоді, якщо c.Visible
    . ObjCelda = Range (LetraIzq + тексти + primerNumero.ToString, LetraIzq + тексти + (UltimoNumero - 1.) ToString)
    objCelda.BorderAround ()
    Якщо лист = "Z" Тоді
    Лист = primeraLetra
    cod_letra = Asc (primeraLetra)
    LetraIzq = Chr (cod_LetraIzq)
    cod_LetraIzq + = 1
    Ще
    cod_letra + = 1
    Лист = Chr (cod_letra)
    End If
    End If
    Наступний

    "Намалюйте товстої зовнішньому кордоні
    Як 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 відправника як System.Object, ByVal електронної Як System.EventArgs) Ручки ToolStripButton2.Click
    ExportarDatosExcel (DataGridView1, "експорт")
    End Sub

  13. JuanPeople каже:

    ВІДМІННО! .... Завдяки брату, взяв 3-х днів з модулем для імпорту / експорту Excel і нічого не виходило .... але з рішенням я бачу знову зірки ... привіт від Арекіпа! ..

  14. TECKNOCK каже:

    Цей код мені дуже допомогли, так що я співпрацюю з моїми два центи:

    Були оптимізовані "ColumnName" прибути ahsta ZZ колонки (702 та ін.)

    Тут я даю вам код:

    Громадський ColumnName функції (ByVal число As Integer) As String
    Dim колонки (703) As String

    Колонка (1) = "A"
    стовпці (2) = "B"
    колонці (3) = "C"
    стовпці (4) = "D"
    колонки (5) = "E"
    колонка (6) = "F"
    стовпці (7) = "G"
    колонка (8) = "H"
    колонка (9) = "Я"
    колонки (10) = "J"
    колонки (11) = "К"
    колонки (12) = "L"
    колонки (13) = "M"
    колонки (14) = "N"
    колонки (15) = "O"
    колонки (16) = "P"
    колонки (17) = "Q"
    колонки (18) = "R"
    колонки (19) = "S"
    колонки (20) = "T"
    колонки (21) = "U"
    колонки (22) = "V"
    колонки (23) = "W"
    колонки (24) = "X"
    колонки (25) = "Y"
    колонки (26) = "Z"

    Dim я = 27
    Для Ltr1 = 1 до 26
    Для Ltr2 = 1 до 26
    колонка (г) = колонці (Ltr1) і стовпця (Ltr2)
    я + = 1
    Наступний
    Наступний

    Повернутися колонки (номер)
    End Function

    • Єлисей сказав:

      TECKNOCK, велике спасибі за допомогу!, Але майте на увазі, що якщо книга ми створюємо сумісний з Excel 97-2003 максимально допустима колони 256 (в IV). Так само, як коментар прийняти це до уваги.

      Єлисей

  15. raysip каже:

    Коли я запускаю місцевих funcioana програми правильно, але коли я завантажити його на веб-сайт не генерує Excel, але не отримую помилку

  16. Aderson каже:

    Я шукаю haciend заземлені для My SQL

    не як я роблю, але я зроблю ая

  17. Павло каже:

    Мені потрібна допомога намагаюся робити це кожен так, як ви тут, і я отримую помилку все

  18. Джон каже:

    Рука, ти ідеальний максимальний funca.

  19. Неджі каже:

    Дуже добре, поздоровлення у найкращих повідомлення Я прочитав і консультації

  20. Патриція говорить:

    Спасибо! Це було дуже корисно

  21. f.delgado каже:

    Гей код не працює на мене, зазначає da.Fill помилки (DS)

    Я наголошую помилки не було знайдено SqlException

    Ви можете допомогти мені

  22. яв каже:

    одне питання, може зробити прямого завантаження SQL-запитів, щоб досягти успіху?

    заздалегідь через

  23. Дельфіно Моралес каже:

    Привіт друзі, перш за все, ви agradesco вашого вкладу.
    Зверніть увагу, що у мене є проблема я не можу знайти посилання, яке показують, я встановив офіс 2010 році і яка не може бути моя проблема.
    agradeseria деякі поради для вас.

  24. Америка каже:

    Доброго дня, дуже хороший вклад, що я шукав ... але коли я запускаю його з розвитком сервер працює ідеально, але коли я отримати доступ до Інтернет з іншого комп'ютера нічого не робить ... не помилка, але не записувати все що завгодно ...

    Кожен знає, як це виправити?

  25. Асофейфа Ернан каже:

    Спасибі, допоміг мені ваш приклад як основу для створення функції, яка створює мені файл Excel, а безпосередньо від значень, що зберігаються в мережі те, що dejor випадку корисна для тих,

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Ми встановлюємо відповідність із заголовками стовпців
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objHojaExcel.Range ("A1"). Виберіть ()
    Dim I As Integer = 0
    Lncol Dim As Integer = 1
    Для кожного постійного струму в dgvSocios.Columns

    Якщо dgvSocios.Columns.Item (I). Visible = True Then
    objHojaExcel.Range (ColumnName (lncol) і 1). Value = dgvSocios.Columns.Item (I). HeaderText
    lncol + = 1
    End If
    Я + = 1
    Наступний
    рядок + = 1

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Ми форматування рядка назви
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Як 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

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Завантажити всі рядки в DataTable
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    ProgressBar1.Maximum = dgvSocios.Rows.Count
    колонки = 0
    ProgressBar1.Value = 0
    ProgressBar1.Visible = True
    Lnfila Dim As Integer = 0
    Я = 1
    Для кожного ін В dgvSocios.Rows
    колонки = 0

    Для кожного постійного струму в dgvSocios.Columns
    Якщо dgvSocios.Columns.Item (стовпця). Visible = True Then
    objHojaExcel.Range (ColumnName (I) і рядки). Value = dgvSocios.Item (колонки, lnfila). Value.ToString
    Я + = 1
    End If
    колонки + = 1
    Наступний
    lnfila + = 1
    рядок + = 1
    ProgressBar1.Value + = 1
    Наступний

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Ми регулювати ширину автоматично
    '/ / З усіх шпальт, використовуваних
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objRango = objHojaExcel.Range ("A1" і ColumnName (lncol) і (lnfila + 1) ToString).
    objRango.Select ()
    objRango.Columns.AutoFit ()

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Ми говоримо Excel для відображення
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    MsgBox ("Експорт в Excel Complete", MsgBoxStyle.Information ». :: Solovb.net ::").
    m_Excel.Visible = True

  26. Пако говорить:

    Приведення небагато для цієї функції, наступний код дозволяє використовувати "Діапазон", щоб не вимагати функцію "ColumnName"

    З повагою,

    Імпорт System.Data
    Imports System.Data.SqlClient
    Імпорт Microsoft.Office.Interop.Excel
    Громадський каламутив модуль
    Public Sub ExportarDtToExcel (ByVal Dt Як System.Data.DataTable, ByVal назвою As String)
    Як Excel.Application Dim m_Excel
    Як Excel.Workbook Dim objLibroExcel
    Як лист Dim objHojaExcel
    Намагатися
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Створення об'єкта Excel
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    m_Excel = CreateObject ("Excel.Application")
    m_Excel.Workbooks.Add objLibroExcel = ()
    objHojaExcel = objLibroExcel.Worksheets (1)
    objHojaExcel.Name = Заголовок
    objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible
    objHojaExcel.Activate ()

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Визначення двох змінних контролювати рядка і стовпця
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Dim рядок As Integer = 1
    Dim колонці As Integer = 1

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Ми встановлюємо відповідність із заголовками стовпців
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    "ObjHojaExcel.Range (" A1 "). Виберіть ()

    objHojaExcel.Cells (рядок, стовпець). SELECT ()
    Для кожного постійного струму в Dt.Columns
    objHojaExcel.Cells (рядок, стовпець). Value = dc.ColumnName
    колонки + = 1
    Наступний
    рядок + = 1

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Ми форматування рядка назви
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    Як Excel.Range = тьмяний 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

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Завантажити всі рядки в DataTable
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

    колонка = 1

    Для кожного ін В Dt.Rows
    колонка = 1
    Для кожного постійного струму в Dt.Columns
    objHojaExcel.Cells (рядок, стовпець). Value = DR (dc.ColumnName)
    колонки + = 1
    Наступний
    рядок + = 1

    Наступний

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Ми регулювати ширину автоматично
    '/ / З усіх шпальт, використовуваних
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    objHojaExcel.Cells objRango = (1, Dt.Columns.Count)
    objRango.Select ()
    objRango.Columns.AutoFit ()

    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    '/ / Ми говоримо Excel для відображення
    '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
    MsgBox ("Експорт в Excel Complete" MsgBoxStyle.Information, "Експорт")
    m_Excel.Visible = True

    Спіймати вибухозахисту, виключення

    MsgBox (ex.ToString)

    В кінці кінців

    objHojaExcel = Nothing
    objLibroExcel = Nothing
    m_Excel = Nothing

    Кінець Спробуйте
    End Sub

    End Module

Коментувати