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

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

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

Заявка на експорт даних в 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
Цей метод служить мені добре, і я сподіваюся, ти теж ... Будь ласка, залишайте свої коментарі.
Інформація 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