今天,我想表明,一直担任我很长一段时间,但我仍然使用它的例子。
出口到Excel完整的DataTable的列或行的数量,我们做出了榜样。
可能有许多方法可以做到这一点,但我觉得真正有用的,因为这种方法对任何版本的Excel。 对于新版本的Excel compatilidad问题只能处理256列。
的第一件事,我们需要的是添加Microsoft.Office.Interop.Excel参考,我们做如下:

参考导入到Excel中

导入Excel参考
然后,我们需要一种形式,一个按钮,DataGridView和进度条。 我们可以在图片中看到:

应用程序的形式出口到Excel的数据集
现在,我想告诉所有的代码是非常简单的,最重要的是,它适应任何表。 你将能够重复使用,没有问题。
进口System.Data 进口的System.Data.SqlClient 进口Microsoft.Office.Interop 公共类Form1 作为新的DataSet的私人DS 小组将Form1_Load(0 System.Object的,BYVAL e由于发件人)把手MyBase.Load '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ /创建连接,并填写在DataGridView '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / 昏暗的CNN(“数据源=本地\ SQLEXPRESS;初始目录=罗斯文集成安全性= TRUE”)作为新的SqlConnection 昏暗的大作为新的SqlDataAdapter(“SELECT *从客户”,CNN) da.Fill(DS) DataGridView1.DataSource = ds.Tables(0) END SUB BtnExportar_Click私人小组(作为System.Object的,BYVAL e由于的BYVAL发件人)处理btnExportar.Click '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ /创建Excel对象 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / 昏暗m_Excel 昏暗objLibroExcel 昏暗objHojaExcel m_Excel =的CreateObject(“Excel.Application的”) m_Excel.Workbooks.Add objLibroExcel =() objHojaExcel,= objLibroExcel.Worksheets(1) objHojaExcel.Name =“客户” objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible objHojaExcel.Activate() '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ /定义两个变量来控制行和列 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / 昏暗行整数= 1 昏暗列整数= 1 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ /设置列标题行 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / objHojaExcel.Range(“A1”)。选择() 对于每个DC在ds.Tables(0)列。 objHojaExcel.Range(的ColumnName(列)1)。价值= dc.ColumnName 柱+ = 1 未来 列+ = 1 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ /格式化行标题 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / 由于PIAs无点心objRango = objHojaExcel.Range(“A1”的ColumnName(ds.Tables(0)Columns.Count)&“1”。) objRango.Font.Bold =真 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 对于每个DC在ds.Tables(0)列。 objHojaExcel.Range(的ColumnName(列)行)。价值=博士(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中完成”MsgBoxStyle.Information的“。:: Solovb.net ::”。) m_Excel.Visible = TRUE END SUB 作为字符串的公共功能的ColumnName(将作为整数级) 作为字符串暗淡列(256) 列(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)=“澳” (16)栏中的“P” 列(17)=“问” 列(18)=的“R” 列(19)=的“S” 列(20)=的“T” 列(21)=“U”形 列(22)=的“V” 列(23)=“宽” (24)栏中的“X” 列(25)=的“Y” 列(26)=的“Z” 列(27)=“AA” 列(28)=“AB公司” 列(29)=“交流” 列(30)=“公元” 列(31)=“曝光” 列(32)=“自动对焦” 列(33)=“公司” 列(34)=“啊” 列(35)=“大赦国际” 列(36)=“AJ。” 列(37)=“支AK” 列(38)=“铝” 列(39)=“AM”(上午) 列(40)=“” 列(41)=“敖” 列(42)=“美联社” 列(43)=“阿Q” 列(44)=“受体” 列(45)=“作为” 列(46)=“在” 列(47)=“UA” 列(48)=“影音” 列(49)=“仙” 列(50)=的“AX” 列(51)=“AY” 列(52)=“字母” 列(53)=“广管局” 列(54)=的“BB” 列(55)=“公元前” 列(56)=“蓝光” 列(57)=“” 列(58)=“高炉” 列(59)=“保函” 列(60)=“波黑” 列(61)=“诗经” 列(62)=“北京” 列(63)=“BK” 列(64)=“基本法” 列(65)=“兽王” 列(66)=“国民” 列(67)=“公报” 列(68)=“英国石油公司” 列(69)=“烧烤” 列(70)=“商业登记” 列(71)=“学士” 列(72)=:“BT” 列(73)=“卜” 列(74)= - “BV” 列(75)=“体重” 列(76)=“BX” 列(77)=“后面” 列(78)=“渤” 列(79)=“CA” 列(80)=“可换股债券” 列(81)=“消委会” 列(82)=“CD” 列(83)=“行政长官” 列(84)=“CF卡” 列(85)=“企业管治” 列(86)=“通道” 列(87)=“信赖区间” 列(88)=“名人官司” 列(89)=“长江” 列(90)=“瘦肉精” 列(91)=“招商” 列(92)=的“CN” 列(93)=“二氧化碳” 列(94)=“处长” 列(95)=“重庆” 列(96)=“华润” 列(97)=的“CS” 列(98)=“CT” 列(99)=“铜” 列(100)=“简历” 列(101)=“连续” 列(102)=“国泰航空” 列(103)=“中青” 列(104)=“锆石” 列(105)=“大” 列(106)=“数据库” 列(107)=“特区” 列(108)=“副署长” 列(109)=“德” 列(110)=“东风” 列(111)=“危险品” 列(112)=“卫生署” 列(113)=“身份证” 列(114)=的“DJ” 列(115)=“的DK” 列(116)=“DL” 列(117)=“马克” 列(118)=“的DN” 列(119)=“DO” 列(120)=“的DP” 列(121)=“DQ的” 列(122)=“议员” 列(123)=“副” 列(124)=的“DT” 列(125)=“杜” 列(126)=“家庭暴力” 列(127)=“德国之声” 列(128)=“的DX” 列(129)=“空间DY” 列(130)=“德滋” 列(131)=“电针” 列(132)=“光大” 列(133)=“欧共体” 列(134)=“海关” 列(135)=“电子工程专辑” 列(136)=“英” 列(137)=“乙二醇” 列(138)=“高血压” 列(139)=“依爱” 列(140)=“EJ” 列(141)=“克朗” 列(142)=“开” 列(143)=“微软” 列(144)=“” 列(145)=“雇佣条例” 列(146)=“的EP” 列(147)=“情商” 列(148)=“急诊室” 列(149)=“胚胎” 列(150)=“ET外星人” 列(151)=“欧盟” 列(152)=“电动车” 列(153)=“电子战” 列(154)=“EX” 列(155)=“安永” 列(156)=“简易” 列(157)=“足总杯” 列(158)=“的FB” 列(159)=“功能界别” 列(160)=“定存” 列(161)=“富裕” 列(162)=“法郎” 列(163)=“福源” 列(164)=“跳频” 列(165)=“FI” 列(166)=“FJ” 列(167)=“FK” 列(168)=“佛罗里达” 列(169)=“调频” 列(170)=“新生力量” 列(171)=“FO的” 列(172)=“计划生育” 列(173)=“CF卡” 列(174)=“阻燃” 列(175)=“财政司司长” 列(176)=“金融时报” 列(177)=“富” 列(178)=“光伏” 列(179)=“防火墙” 列(180)=“外汇” 列(181)=“风云” 列(182)=“FZ型” 列(183)=“遗传” 列(184)=“国标” 列(185)=“气相色谱” 列(186)=“广东” 列(187)=“通用电气” 列(188)=“绿” 列(189)=“的GG” 列(190)=“生长激素” 列(191)=“特种部队” 列(192)=“吉焦” 列(193)=“竞” 列(194)=“GL” 列(195)=“通用” 列(196)=“号政府公告” 列(197)=“GO” 列(198)=“家庭医生” 列(199)=“GQ” 列(200)=“遗传资源” 列(201)=“广深高速” 列(202)=,“GT” 列(203)=“顾” 列(204)=“颗粒” 列(205)=“毛” 列(206)=“GX的” 列(207)=“庚寅” 列(208)=“广州” 列(209)=“房委会” 列(210)=“乙肝” 列(211)=“慧聪” 列(212)=“高清” 列(213)=“他” 列(214)=“高频” 列(215)=“氢化” 列(216)=“农户” 列(217)=“您好” 列(218)=“黄建忠” 列(219)=“香港” 列(220)=“红莲” 列(221)=“陛下” 列(222)=“HN” 列(223)=“议员” 列(224)=“HP” 列(225)=“总部” 列(226)=“人力资源” 列(227)=“爆头” 列(228)=“羟色胺” 列(229)=“胡” 列(230)=“高压” 列(231)=“硬件” 列(232)=“高” 列(233)=“海鹰” 列(234)=“赫兹” 列(235)=“保监” 列(236)=“兴业” 列(237)=“集成电路” 列(238)=“身份证” 列(239)=“IE浏览器” 列(240)=“如果” 列(241)=“中空玻璃” 列(242)=“中转” 列(243)=“二” 列(244)=“IJ” 列(245)=“的IK” 列(246)=“伊尔” 列(247)=“聊天室” 列(248)=“中” 列(249)=“的IO” 列(250)=“知识产权” 列(251)=“智商” 列(252)=的“R” 列(253)=“” 列(254)=“” 列(255)=“国际单位” 列(256)=“四” 返回列(数) 函数结束 末级
这种方法也使我受益匪浅,我希望你也这样做,请留下您的意见。
信息Bitacoras.com ...
率在Bitacoras.com:嗨,今天,我想表明,一直担任我很长一段时间,但我仍然使用它的例子。 我们做出了榜样,以一个DataTable导出到Excel完整的列数或行,无论10克......
好极了!
优秀的后! 谢谢你帮助我全面,但我有一个疑问...... 由于链接是..用sql 我该如何重新命名列! 因为它带来了SQL的字段的名称。!
我希望我的理解......
谢谢!
我要救...
在某些时候,这将是有益...
这是Excel 2007中有效吗? 我曾与出口发展的问题,它是有效的早期版本,但不是2007年。 谢谢
巨大的源代码。 使我受益匪浅。 功能问才姗姗来迟。
虽然还需要ecxel“进口数据表。 但也可能是环境的一个DataGrid,然后更新的DataAdapter和接受DataTable的变化将被保存在Q BD ......我希望我可以帮助找到...... 谢谢
您好许多的感谢! 这个优秀的!
但我不知道其中的DataGrid指定的情况下使用DataGrid的几个?
在桌子上,你随叫随到......
选择*从(表名)
如果你想指定你想要的字段
选择(字段,字段,字段)从表*
EJM
从车车,颜色,今年选择
我做2个变量DC和DR的错误,我有一个问题这个例子,我可以做些什么来解决它?
嗨,试试这个:
对于每个医生的DataRow在ds.Tables(0)。行和DataColumn每个DC在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的字段的名称。!
我希望我的理解......
谢谢!
公共,小组ExportarDatosExcel(0 DataGridView中,作为字符串级称号DataGridView1)
作为新Excel.Application的点心m_Excel
m_Excel.Cursor = Excel.XlMousePointer.xlWait
m_Excel.Visible = TRUE
作为Excel.Workbook点心objLibroExcel = m_Excel.Workbooks.Add
由于Excel.Worksheet的点心objHojaExcel = objLibroExcel.Worksheets(1)
与objHojaExcel
。可见= Excel.XlSheetVisibility.xlSheetVisible
。激活()
“头
范围(“格A1:L1”)。合并()
范围(“格A1:L1”)。值=“学院ARGENCAF”
范围(“格A1:L1”Font.Bold = TRUE)。
范围(“格A1:L1”)。Font.Size = 15
“簇绒
范围(“A2:二级”)。合并()
范围(“A2:二级”)。价值=标题
范围(“A2:二级”)。Font.Bold = TRUE
范围(“A2:二级”)。Font.Size = 12
CONST primeraLetra为char =“A”的
短= 3 CONST firstNumber
暗淡信为char,由于UltimaLetra的字符
昏暗数作为整数,作为整数UltimoNumero
暗淡字节=,上升cod_letra(primeraLetra) - 1
暗淡的String = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator sepDec
暗淡的String = Application.CurrentCulture.NumberFormat.NumberGroupSeparator sepMil
“女儿的计算列集格式
StrColumna昏暗的String =“”
LetraIzq昏暗的String =“”
暗淡字节=,上升cod_LetraIzq(primeraLetra) - 1
信= primeraLetra
数= firstNumber
作为PIAs无点心objCelda
对于每一个在DataGridView1.Columns的C DataGridViewColumn
然后,如果c.Visible
如果信的“Z”,然后
信= primeraLetra
cod_letra = ASC(primeraLetra)
cod_LetraIzq + = 1
LetraIzq = CHR(cod_LetraIzq)
其他
cod_letra + = 1
信= CHR(cod_letra)
如果最终
strColumna = LetraIzq +歌词+ Numero.ToString
objCelda =(strColumna,Type.Missing的范围)
objCelda.Value = c.HeaderText
objCelda.EntireColumn.Font.Size = 8
'ObjCelda.EntireColumn.NumberFormat = c.DefaultCellStyle.Format
如果c.ValueType的GetType(十进制)OrElse运算c.ValueType的GetType(双)
objCelda.EntireColumn.NumberFormat =“#”sepMil“0”sepDec“00”
结束如果
结束如果
未来
作为点心objRangoEncab PIAs无=范围(primeraLetra + Numero.ToString,LetraIzq +歌词+ Numero.ToString)
objRangoEncab.BorderAround(1 Excel.XlBorderWeight.xlMedium)
UltimaLetra =发送
暗淡的String = LetraIzq UltimaLetraIzq
负载数据
暗淡我作为整数= + 1
对于每个作为的DataGridViewRow DataGridView1.Rows名单
LetraIzq =“”
cod_LetraIzq = ASC(primeraLetra) - 1
信= primeraLetra
cod_letra = ASC(primeraLetra) - 1
对于每一个在DataGridView1.Columns的C DataGridViewColumn
然后,如果c.Visible
如果信的“Z”,然后
信= primeraLetra
cod_letra = ASC(primeraLetra)
cod_LetraIzq + = 1
LetraIzq = CHR(cod_LetraIzq)
其他
cod_letra + = 1
信= CHR(cod_letra)
结束如果
strColumna = LetraIzq +歌词
“这应该是负载
细胞(I,strColumna)= IIF(IsDBNull以便(reg.ToString)“,”reg.Cells(c.Index)。价值)
“细胞(我,strColumna)= IIF(IsDBNull以便(注册(c.DataPropertyName)),c.DefaultCellStyle.NullValue,章(c.DataPropertyName))
“范围(strColumna + I,strColumna + I)。()
结束如果
未来
=范围作为PIAs无点心objRangoReg(primeraLetra + i.ToString,i.ToString strColumna)
objRangoReg.Rows.BorderAround()
objRangoReg.Select()
I + = 1
未来
UltimoNumero = I
“画线列
LetraIzq =“”
cod_LetraIzq = ASC(“甲”)
cod_letra = ASC(primeraLetra)
信= primeraLetra
对于每一个在DataGridView1.Columns的C DataGridViewColumn
然后,如果c.Visible
。objCelda =范围(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)
结束如果
结束如果
未来
“画厚的外部边界
作为PIAs无点心objRango =范围primeraLetra + primerNumero.ToString,UltimaLetra UltimaLetraIzq +(UltimoNumero - 1)的ToString()
objRango.Select()
objRango.Columns.AutoFit()
objRango.Columns.BorderAround(1 Excel.XlBorderWeight.xlMedium)
结尾
m_Excel.Cursor = Excel.XlMousePointer.xlDefault
END SUB
私人小组ToolStripButton2_Click_1(作为System.Object的,BYVAL e由于的BYVAL发件人)处理ToolStripButton2.Click
ExportarDatosExcel(DataGridView1,“出口”)
END SUB
好极了!!...... 感谢兄弟,并采取了3天,同一个模块导入/导出Excel和没有工作....但你的解决方案,我再次看到星星......问候:从阿雷基帕!......
别客气。 我很高兴,你作为一个例子担任。
此代码帮我很多,所以我与我的两分钱:
优化“的ColumnName”到达ahsta ZZ的列(702等。)
在这里,我给你的代码:
作为字符串的公共功能的ColumnName(将作为整数级)
作为字符串暗淡列(703)
列(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)=“澳”
(16)栏中的“P”
列(17)=“问”
列(18)=的“R”
列(19)=的“S”
列(20)=的“T”
列(21)=“U”形
列(22)=的“V”
列(23)=“宽”
(24)栏中的“X”
列(25)=的“Y”
列(26)=的“Z”
昏暗的我= 27
对于Ltr1 = 1至26
对于Ltr2 = 1至26
栏(i)=列(Ltr1)和列(Ltr2)
I + = 1
未来
未来
返回列(数)
函数结束
TECKNOCK,非常感谢你的帮助!,但记住,如果我们创建了这本书是兼容Excel中允许的最大列97-2003 256(四)。 正如评论,考虑到这个。
以利沙
当我运行本地应用funcioana正确,但是当我在网站上上传它不生成的Excel,但没有得到错误
我期待haciend接地我的SQL
不喜欢我在做什么,但我会尽AJA
我需要帮助,尝试这样做,你在这里,我得到错误
另一方面,你的完美FuncA的行最大。
[...] [...]
祝贺非常好,是最好的帖子我已经阅读并征询
谢谢! 这是非常有益的
嘿代码对我不起作用,标志着da.Fill错误(DS)
我标记的错误没有被发现的SQLException
你能帮助我
一个问题可以直接装载SQL查询到Excel?
事先通过
朋友首先你agradesco你的贡献。
请注意,我有一个问题,我无法找到你表明,我已经安装了Office 2010的,这不能成为我的问题的参考。
agradeseria给你一些建议。
您好,很不错的贡献是我一直在寻找什么......但是,当我运行它从开发服务器运行完美,但是当我从另一台电脑访问网页什么也不做......没有错误,但不记录任何...
有谁知道如何解决它?
非常感谢你帮我,你的例子是什么dejor情况下是有用的人,作为一个生成函数生成我,而是直接从Excel文件存储在一个网格中的值的基础上
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ /设置列标题行
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objHojaExcel.Range(“A1”)。选择()
昏暗,我作为整数= 0
lncol暗淡整数= 1
对于每个在dgvSocios.Columns直流
如果dgvSocios.Columns.Item(一)。可见= True,则
objHojaExcel.Range(的ColumnName(lncol)1)。价值。的HeaderText = dgvSocios.Columns.Item(一)
lncol + = 1
结束如果
i + = 1
未来
列+ = 1
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ /格式化行标题
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
由于PIAs无点心objRango = objHojaExcel.Range(“A1”的ColumnName(lncol)&“1”)
objRango.Font.Bold =真
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点心作为整数= 0
I = 1,
对于每个在dgvSocios.Rows博士
列= 0
对于每个在dgvSocios.Columns直流
如果dgvSocios.Columns.Item(列)。可见= true,则
objHojaExcel.Range(的ColumnName(一)及行)。价值= dgvSocios.Item(列,lnfila)。Value.ToString
i + = 1
如果最终
柱+ = 1
未来
lnfila + = 1
列+ = 1
ProgressBar1.Value + = 1
未来
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ /自动调整宽度
'/ /从所有使用的列
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objRango = objHojaExcel.Range(“A1”的ColumnName(lncol)(lnfila + 1)的ToString。)
objRango.Select()
objRango.Columns.AutoFit()
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ /我们告诉Excel将显示
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MSGBOX(“导出到Excel中完成”MsgBoxStyle.Information的“。:: Solovb.net ::”。)
m_Excel.Visible = TRUE
带来了这个功能位,下面的代码避免使用不需要的功能“的ColumnName”范围“”
的问候,
进口System.Data
进口的System.Data.SqlClient
进口Microsoft.Office.Interop.Excel
公共模块mutil
公共,小组ExportarDtToExcel(0 System.Data.DataTable,BYVAL标题为String DT)
作为Excel.Application的点心m_Excel
作为Excel.Workbook点心objLibroExcel
如表暗淡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()
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ /定义两个变量来控制行和列
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
昏暗行整数= 1
昏暗列整数= 1
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ /设置列标题行
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
“ObjHojaExcel.Range(”A1“)。选择()
objHojaExcel.Cells(行,列)。选择()
对于每个在Dt.Columns直流
objHojaExcel.Cells(行,列)。价值= dc.ColumnName
柱+ = 1
未来
列+ = 1
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ /格式化行标题
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
作为PIAs无=,昏暗objRango objHojaExcel.Range(objHojaExcel.Cells(1,1),objHojaExcel.Cells(,Dt.Columns.Count))
objRango.Font.Bold =真
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(行,列)。价值=博士(dc.ColumnName)
柱+ = 1
未来
列+ = 1
未来
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ /自动调整宽度
'/ /从所有使用的列
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objHojaExcel.Cells objRango(1 Dt.Columns.Count)
objRango.Select()
objRango.Columns.AutoFit()
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ /我们告诉Excel将显示
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MSGBOX(“导出到Excel中完成”MsgBoxStyle.Information,“出口”)
m_Excel.Visible = TRUE
作为例外赶上前
MSGBOX(ex.ToString)
终于
objHojaExcel =无
objLibroExcel =无
m_Excel =无
最终的结局
END SUB
前端模块