自动出口到Microsoft Excel的DataTable

今天,我想表明,一直担任我很长一段时间,但我仍然使用它的例子。
出口到Excel完整的DataTable的列或行的数量,我们做出了榜样。

可能有许多方法可以做到这一点,但我觉得真正有用的,因为这种方法对任何版本的Excel。 对于新版本的Excel compatilidad问题只能处理256列。

的第一件事,我们需要的是添加Microsoft.Office.Interop.Excel参考,我们做如下:

Importar referencia a Excel

参考导入到Excel中

Importar referencia Excel

导入Excel参考

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

Formulario aplicación para exportar dataset a excel

应用程序的形式出口到Excel的数据集

现在,我想告诉所有的代码是非常简单的,最重要的是,它适应任何表。 你将能够重复使用,没有问题。

 进口System.Data
进口的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)=“四”

        返回列(数)
    函数结束
末级 

这种方法也使我受益匪浅,我希望你也这样做,请留下您的意见。

32“自动导出DataTable添加到Microsoft Excel”

  1. Bitacoras.com 说:

    信息Bitacoras.com ...

    率在Bitacoras.com:嗨,今天,我想表明,一直担任我很长一段时间,但我仍然使用它的例子。 我们做出了榜样,以一个DataTable导出到Excel完整的列数或行,无论10克......

    • 卡洛斯·利纳雷斯说:

      好极了!

      优秀的后! 谢谢你帮助我全面,但我有一个疑问...... 由于链接是..用sql 我该如何重新命名列! 因为它带来了SQL的字段的名称。!

      我希望我的理解......

      谢谢!

  2. 电工说:

    我要救...
    在某些时候,这将是有益...

  3. 维克多说:

    这是Excel 2007中有效吗? 我曾与出口发展的问题,它是有效的早期版本,但不是2007年。 谢谢

  4. 约翰说:

    巨大的源代码。 使我受益匪浅。 功能问才姗姗来迟。

  5. 约翰说:

    虽然还需要ecxel“进口数据表。 但也可能是环境的一个DataGrid,然后更新的DataAdapter和接受DataTable的变化将被保存在Q BD ......我希望我可以帮助找到...... 谢谢

  6. 何塞说:

    您好许多的感谢! 这个优秀的!
    但我不知道其中的DataGrid指定的情况下使用DataGrid的几个?

    • 卡洛斯·利纳雷斯说:

      在桌子上,你随叫随到......

      选择*从(表名)

      如果你想指定你想要的字段

      选择(字段,字段,字段)从表*
      EJM
      从车车,颜色,今年选择

  7. 贝托说:

    我做2个变量DC和DR的错误,我有一个问题这个例子,我可以做些什么来解决它?

    • 以利沙说:

      嗨,试试这个:
      对于每个医生的DataRow在ds.Tables(0)。行和DataColumn每个DC在ds.Tables(0)列

      我希望,这是解决的。 的问候。

  8. 贾森说:

    HOLA。
    这chevere,但列名的一部分,是不是很实用。
    我上传到我的博客小得多的代码大小的限制,并没有

    jaysson.blogspot.com

  9. 罗德里戈说:

    好文章,但我有一个问题在我的电脑与Excel 2007中的工程顺利,但与用Excel 2003或更早版本的计算机不起作用。 有谁知道如果库的问题,都是进口的,因为你的意思是任何Excel的作品,但我也遇到这个问题。

    让我们来看看,如果有人能解决的疑问。
    谢谢。

  10. 卡洛斯·利纳雷斯说:

    好极了!

    优秀的后! 谢谢你帮助我全面,但我有一个疑问...... 由于链接是..用sql 我该如何重新命名列! 因为它带来了SQL的字段的名称。!

    我希望我的理解......

    谢谢!

  11. 亚历山大说:

    公共,小组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

  12. JuanPeople说:

    好极了!!...... 感谢兄弟,并采取了3天,同一个模块导入/导出Excel和没有工作....但你的解决方案,我再次看到星星......问候:从阿雷基帕!......

  13. TECKNOCK说:

    此代码帮我很多,所以我与我的两分钱:

    优化“的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(四)。 正如评论,考虑到这个。

      以利沙

  14. raysip说:

    当我运行本地应用funcioana正确,但是当我在网站上上传它不生成的Excel,但没有得到错误

  15. aderson说:

    我期待haciend接地我的SQL

    不喜欢我在做什么,但我会尽AJA

  16. 保罗说:

    我需要帮助,尝试这样做,你在这里,我得到错误

  17. 约翰说:

    另一方面,你的完美FuncA的行最大。

  18. neji说:

    祝贺非常好,是最好的帖子我已经阅读并征询

  19. 帕特里夏说:

    谢谢! 这是非常有益的

  20. f.delgado说:

    嘿代码对我不起作用,标志着da.Fill错误(DS)

    我标记的错误没有被发现的SQLException

    你能帮助我

  21. JAV说:

    一个问题可以直接装载SQL查询到Excel?

    事先通过

  22. 德尔菲诺莫拉莱斯说:

    朋友首先你agradesco你的贡献。
    请注意,我有一个问题,我无法找到你表明,我已经安装了Office 2010的,这不能成为我的问题的参考。
    agradeseria给你一些建议。

  23. 美国说:

    您好,很不错的贡献是我一直在寻找什么......但是,当我运行它从开发服务器运行完美,但是当我从另一台电脑访问网页什么也不做......没有错误,但不记录任何...

    有谁知道如何解决它?

  24. azofeifa克雷斯波说:

    非常感谢你帮我,你的例子是什么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

  25. pako说:

    带来了这个功能位,下面的代码避免使用不需要的功能“的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

    前端模块

评论