Автоматический экспорт в 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

Теперь я хочу, чтобы показать весь код очень прост самое главное, что он приспосабливается к любому столу. Вы сможете использовать без проблем.

 Imports System.Data Imports System.Data.SqlClient Public Class Form1 Импорт Microsoft.Office.Interop частных 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) дает. Заполните (DS) DataGridView1.DataSource = ds.Tables (0) End Sub Private Sub btnExportar_Click (ByVal отправителя как System.Object, ByVal электронной Как System.EventArgs) Ручки btnExportar.Click '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Создание объекта Excel' / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim Dim Dim m_Excel objLibroExcel objHojaExcel m_Excel = CreateObject ("Excel.Application") m_Excel.Workbooks.Add objLibroExcel = () = objLibroExcel.Worksheets objHojaExcel (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 "/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Мы отформатировать названия строки' / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim Как Excel.Range = objHojaExcel.Range objRango ("A1". и ColumnName (ds.Tables (0) Columns.Count) и "1") objRango.Font . Жирный = 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 ProgressBar1.Value колонка = 1 = 0 Для каждого др. В ds.Tables (0). Строки столбцов = 1 для каждого постоянного тока в ds.Tables (0). Столбцы objHojaExcel.Range (ColumnName (колонки) и строки). Value = DR (dc.ColumnName) колонки + = 1 Следующая строка + = 1 + = 1 Next ProgressBar1.Value '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Мы регулировать ширину автоматически "/ / для всех столбцов, используемых' / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / = 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) = "K" колонки (12) = "L" колонки (13) = "M" колонки (14) = "N" в колонке (15) = "W" колонки (16) = "P" колонки (17) = "Q" колонки (18) = "R" колонки (19) = "S" колонки (20) = " Т "колонки (21) =" U "колонки (22) =" V "колонки (23) =" W "колонки (24) =" X "в колонке (25) =" Y "колонки (26) =" Z " колонки (27) = "AA" колонки (28) = "AB" колонки (29) = "AC" колонки (30) = "AD" колонки (31) = "AE" колонки (32) = "AF" колонку ( 33) = "AG" колонки (34) = "AH" колонки (35) = "номер" колонки (36) = "AJ" колонки (37) = "АК" колонки (38) = "К" колонки (39) = "AM" колонки (40) = "NA" колонки (41) = "AO" колонки (42) = «АП» колонки (43) = "AQ" колонки (44) = "РА" колонки (45) = " AS "колонки (46) =" AT "колонки (47) =" АС "колонки (48) =" AV "колонки (49) =" "колонки (50) =" AW AX "колонки (51) =" AY " колонки (52) = "AZ" колонки (53) = "BA" колонки (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) = " BR "колонки (71) =" BS "колонки (72) =" BT "колонки (73) =" БУ "колонки (74) =" "колонки (75) =" BV BW "колонки (76) =" ВХ " колонки (77) = "ПО" колонки (78) = "BZ" колонки (79) = "CA" колонки (80) = "КБ" колонки (81) = "CC" колонки (82) = "CD" колонку ( 83) = "CE" колонки (84) = "CF" колонки (85) = "CG" колонки (86) = "CH" колонки (87) = "ДИ" колонки (88) = "CJ" колонки (89) = "СК" колонки (90) = "CL" колонки (91) = «СМ» колонки (92) = "CN" колонки (93) = "СО" колонки (94) = "СР", колонка (95) = " CQ "колонки (96) =" CR "колонки (97) =" CS "колонки (98) =" КТ "колонки (99) =" "колонки (100) =" CU CV "колонки (101) =" CW " колонки (102) = "CX" колонки (103) = "CY" колонки (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) =« ДС »колонки (124) =" "колонки (125) =" DT DU "колонки (126) =" ДВ " колонки (127) = "DW" колонки (128) = "DX" колонки (129) = "DY" колонки (130) = "DZ" колонки (131) = "EA" колонки (132) = "EB" колонки ( 133) = "ВК" колонки (134) = "ED" колонки (135) = "EE" колонки (136) = "EF" колонки (137) = "ЭГ" в колонке (138) = "ЕН" колонки (139) = "ЭИ" колонки (140) = "EJ" колонки (141) = "ЭК" колонки (142) = "EL" колонки (143) = "MS" колонки (144) = "В" колонки (145) = " EO "колонки (146) =" EP "колонки (147) =" EQ "колонки (148) =" Скорая помощь "колонки (149) =" "колонки (150) =" ES ET "колонки (151) =" ЕС " колонки (152) = "ЭВ" колонки (153) = "РЭБ" колонки (154) = "EX" колонки (155) = "Эрнст энд Янг" в колонке (156) = "EZ" колонки (157) = "FA" колонку ( 158) = "FB" колонки (159) = "ФК" колонки (160) = "FD" колонки (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) =" "колонки (175) =" FR FS "колонки (176) =" FT " колонки (177) = "ФУ" колонки (178) = "FV" колонки (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) =" GO "колонки (198) =" ГП "колонки (199) =" "колонки (200) =" GQ GR "колонки (201) =" GS " колонки (202) = "GT" колонки (203) = "ГУ" колонки (204) = "Г.В." колонки (205) = "GW" колонки (206) = "GX" колонки (207) = "GY" колонки ( 208) = "GZ" колонки (209) = "HA" колонки (210) = "НВ" колонки (211) = "ХК" колонки (212) = "HD" колонки (213) = "HE" колонки (214) = "ВЧ" колонки (215) = "HG" колонки (216) = "HH" колонки (217) = "HI" колонки (218) = "HJ" колонки (219) = "ХК" колонки (220) = " HL "колонки (221) =" НМ "колонки (222) =" HN "колонки (223) =" HO "колонки (224) =" "колонки (225) =" HP HQ "колонки (226) =" HR " колонки (227) = "УГ" колонки (228) = "HT" колонки (229) = "HU" колонки (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) =" "колонки (250) =" IO 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

Комментировать