前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VB.net datagridview转Excel,datatable转数组

VB.net datagridview转Excel,datatable转数组

作者头像
一线编程
发布2019-07-22 14:43:01
1.9K0
发布2019-07-22 14:43:01
举报
文章被收录于专栏:办公魔盒办公魔盒

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 办公魔盒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档