专栏首页VB小源码VB.net datagridview转Excel,datatable转数组

VB.net datagridview转Excel,datatable转数组

VB.net datagridview转Excel,datatable转数组,简单说就是通过datatable转换成二维数组,然后导出数据到Excel文件,可以瞬间导出N多条数据;

用法1:传入一个datatable就能导出数据到Excel

用法2:

把datagridview 数据转换成datatable传入然后导出Excel

datagridview 用法如下:

sub dgvtoexcel()

Dim dt As New DataTable

dt = prt_dgv.DataSource

xl.datatable2excel(dt)

end sub

'-----------------------------------------------------------------------------------------

'------------------------------------------------------------------------------------------

''' <summary>

''' 导出Excel

''' </summary>

''' <param name="dt"> datagridview</param>

''' <remarks></remarks>

Public Sub datatable2excel(ByVal dt As DataTable)

'-----------------------------------------------------

'datatable转数组

Dim arr(dt.Rows.Count, dt.Columns.Count - 1)

Dim brr(dt.Columns.Count - 1)

Dim i As Integer = 0

Dim j As Integer = 0

For k As Integer = 0 To dt.Columns.Count - 1

brr(k) = dt.Columns(k).ColumnName

Next

While i < dt.Rows.Count

For j = 0 To dt.Columns.Count - 1

arr(i, j) = dt.Rows(i)(j)

Next

i += 1

End While

'-------------------------------------------------

Dim crr(dt.Rows.Count, 0)

For g As Integer = 1 To dt.Rows.Count

crr(g - 1, 0) = g

Next

'-------------------------------------------------

Dim xlapp As New Excel.Application

Dim xlbook As Excel.Workbook

Dim xlsheet As Excel.Worksheet

'-------------------------------------------------

xlapp.Application.Workbooks.Add(True)

xlapp.Visible = True

xlapp.Range("b1").Resize(1, dt.Columns.Count).Value = brr

xlapp.Range("b2").Resize(dt.Rows.Count, dt.Columns.Count).Value = arr

xlapp.Range("a1").Value = "序号"

xlapp.Range("a2:a" & dt.Rows.Count + 1).Value = crr

''--------------------------------------------------

xlbook = xlapp.ActiveWorkbook

xlsheet = xlbook.ActiveSheet

'xl表格样式

xlsheet.Cells.Borders.Color = Color.White

With xlsheet.UsedRange

.Borders.Color = Color.Black

.Font.Name = "微软雅黑"

.Font.Size = 11

.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter

.VerticalAlignment = Excel.XlHAlign.xlHAlignCenter

End With

With xlsheet.Range("a1").Resize(1, dt.Columns.Count + 1)

.Interior.Color = Color.DarkGray

.Font.Size = 13

.Font.Name = "微软雅黑"

End With

xlsheet.Cells.EntireColumn.AutoFit()

xlsheet.Select()

'---------------------------------------------------

xlsheet = Nothing

xlbook = Nothing

xlapp = Nothing

End Sub

本文分享自微信公众号 - VB小源码(vb_xym)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SQL Server 合并多对多表的数据

    今天还是发一篇老文。介绍当时我合并博客文章数据时遇到的一个问题和解决方法。我不擅长SQL,如果大家有更好的方法,欢迎在评论里留言讨论。

    Edi Wang
  • Qt环境配置相关问题

    1.Qmake -project生成Qt Pro文件

    sofu456
  • 适合程序嵌入的pdf控件了解

    如果开发一个软件,需要用到PDF功能,您的选择是基于Adobe PDF吗? 如果是基于Adobe PDF,需要用户安装一个几十M的Adobe的安装包,这显然是不...

    点量小崔
  • C# 8 新增小功能

    尽管 C# 8 应该会在今年发布,并且 C# 8.x 和 9 的路线图也开始形成,但是,微软正在继续审查下一个版本的特性。

    梁规晓
  • Qt Creator OPenGL实例

    sofu456
  • VC++DLL动态链接库程序

    最近查找了一下VC++中关于编写DLL动态库的资料,主要是导出函数和导出类的编写。因为在实际项目开发中有时需要使用C++编写好DLL接口,控制设备,提供给其他语...

    ccf19881030
  • Visual Studio 2019 16.1 更新摘要

    Edi Wang
  • Entity Framework 的一些性能建议

    这是一篇我在2012年写的老文章,至今适用(没错,我说的就是适用于EF Core)。因此使用微信重新推送,希望能帮到大家。

    Edi Wang
  • ASP.NET Core on K8S学习初探(3)部署API到K8S

    在上一篇《基本概念快速一览》中,我们把基本的一些概念快速地简单地不求甚解地过了一下,本篇开始我们会将ASP.NET Core WebAPI部署到K8S,从而结束...

    Edison Zhou
  • 【Rust日报】 2019-05-16:在Rust中创建C/C++ API

    这个清单如果继续写下去会很长,Rust已经在众多领域陆续开花了。Rust社区感谢有你!

    MikeLoveRust

扫码关注云+社区

领取腾讯云代金券