Сегодня я хочу показать пример, который служил мне в течение длительного времени и все же я до сих пор используют его.
Мы сделаем Например, чтобы экспортировать в Excel DataTable полной независимо от того, число столбцов или строк, которые есть.
Там может быть много способов сделать это, но я нахожу это очень полезным, так как этот метод работает для любой версии Excel. Для compatilidad проблемы с новыми версиями Excel обрабатывать только 256 столбцов.
Первое, что нам нужно, это добавить ссылку на Microsoft.Office.Interop.Excel и мы делаем следующим образом:

Импорт ссылку на Excel

Импорт Excel ссылки
Затем нам нужно форму, кнопки, DataGridView и прогресс-бар. Мы можем, как показано на рисунке:

Заявка на экспорт данных в 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 Этот метод служит мне хорошо, и я надеюсь, ты тоже ... Пожалуйста, оставляйте свои комментарии.
Информация Bitacoras.com ...
Ставка в Bitacoras.com: Привет, сегодня я хочу показать пример, который служил мне в течение длительного времени и все же я до сих пор используют его. Мы сделаем Например, чтобы экспортировать в Excel DataTable полной независимо от того, число столбцов или строк, которые Дэн .....
Хорошо ...
Отличный пост! Спасибо, помогли мне полностью, но у меня есть сомнения .. Поскольку связь с SQL .. Как переименовать столбцы?! Потому что это приносит названия полей SQL! ..
Я надеюсь и я поняла ..
Спасибо!
Я собираюсь сохранить ...
в какой-то момент она будет полезна ...
Разве это справедливо для Excel 2007? У меня были проблемы с экспортом в разработке, что она справедлива для более ранних версий, но не в 2007 году. Спасибо
Огромные исходным кодом. сослужила мне хорошую службу. д это было давно.
Хотя необходимо также ecxel импорт табличных данных. но может быть экологическим к сетке, а затем обновление DataAdapter и принять изменения в DataTable будет сохранен в д бул ... Я надеюсь, что смогу помочь или найти .. спасибо
Привет большое спасибо! это отлично!
Но мне интересно, где сетке указывает, что используется в случае, который несколько DataGrid?
На столе вы по вызову ...
SELECT * FROM (имя таблицы)
Если вы хотите указать, какие поля вы хотите
select (поля, поля, поля) * из таблицы
EJM
выбрать автомобиль, цвет, год от автомобиля
У меня есть проблема с этим примером я могу сделать 2 ошибки в переменных постоянного тока и др., я могу сделать, чтобы исправить это?
Привет, попробуйте следующее:
Для каждого др. В DataRow в ds.Tables (0). Строки и DataColumn Для каждого постоянного тока в качестве ds.Tables (0). Столбцы
Я надеюсь, что это не будет решена. Привет.
Hola.
это chevere, но часть имени столбца не очень функционально.
Я буду загружать на моем блоге гораздо меньше ограничений размера кода и без
jaysson.blogspot.com
готовые и пошел вверх по статье
http://jaysson.blogspot.com/2010/06/columnas-es-excel.html
Хорошая статья, но у меня есть проблема на моем компьютере с Excel 2007 года работает плавно, но с компьютерами с Excel 2003 или более ранних версий не работает. Кто знает, если проблема библиотек, которые импортируются, так как вы это означает, что для любой работы Excel, но я столкнулся с этой проблемой.
Давайте посмотрим, если кто-то может решить сомнения.
Спасибо.
Хорошо ...
Отличный пост! Спасибо, помогли мне полностью, но у меня есть сомнения .. Поскольку связь с SQL .. Как переименовать столбцы?! Потому что это приносит названия полей SQL! ..
Я надеюсь и я поняла ..
Спасибо!
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
ОТЛИЧНО! .... Благодаря брату, взял 3-х дней с модулем для импорта / экспорта Excel и ничего не получалось .... но с решением я вижу снова звезды ... привет от Арекипа! ..
Пожалуйста. Я рад, что вы служили в качестве примера.
Этот код мне очень помогли, так что я сотрудничаю с моими два цента:
Были оптимизированы "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). Так же, как комментарий принять это во внимание.
Елисей
Когда я запускаю местных funcioana приложения правильно, но когда я загрузить его на веб-сайт не генерирует Excel, но не получаю ошибку
Я ищу haciend ЗАЗЕМЛЕН для My SQL
не как я делаю, но я сделаю ая
Мне нужна помощь стараюсь делать это каждый так, как вы здесь, и я получаю ошибку все
Рука, ты идеальный максимальный funca.
[...] [...]
Очень хорошо, поздравления в лучших сообщение Я прочитал и консультации
Спасибо! Это было очень полезно
Эй код не работает на меня, отмечает da.Fill ошибки (DS)
Я отмечаю ошибки не было найдено SqlException
Вы можете помочь мне
один вопрос, может сделать прямой загрузки SQL-запросов, чтобы преуспеть?
заранее через
Привет друзья, прежде всего, вы agradesco вашего вклада.
Обратите внимание, что у меня есть проблема я не могу найти ссылку, которую показывают, я установил офис 2010 году и которая не может быть моя проблема.
agradeseria некоторые советы для вас.
Здравствуйте, очень хороший вклад, что я искал ... но когда я запускаю его с развитием сервер работает идеально, но когда я получить доступ к Интернет с другого компьютера ничего не делает ... не ошибка, но не записывать все что угодно ...
Каждый знает, как это исправить?
Спасибо, помог мне ваш пример в качестве основы для создания функции, которая создает мне файл 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
Приведение немного для этой функции, следующий код позволяет использовать "Диапазон", чтобы не требовать функцию "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