加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VB.NET之旅-机房收费系统个人重构DatagridView导出数据到Excel

发布时间:2020-12-17 07:53:07 所属栏目:百科 来源:网络整理
导读:记得 vb 版的机房收费系统的导出 Excel 是从网上直接搬的代码,这次又遇到了从 dataGridView 导出 Excel 的问题,我在心里暗暗想,这次的代码一定要自己写,这一写可就出问题了,请见下文 第一步,添加引用在 U 层 第二步,引入命名空间 第三步,书写代码 遇

记得vb版的机房收费系统的导出Excel是从网上直接搬的代码,这次又遇到了从dataGridView导出Excel的问题,我在心里暗暗想,这次的代码一定要自己写,这一写可就出问题了,请见下文

第一步,添加引用在U

第二步,引入命名空间

第三步,书写代码

遇到问题一.

答案:从网上找了很多资料,原来答案在这里,excel的表格索引值行和列都是从1开始的,而我这里却是从0开始的

遇到问题二,


没有表头,而且我在DataGridView中的卡号明明是00001到了excel中怎么变成了1,我想大家都知道这是Excel中的单元格格式的问题,只要把单元格的格式改成文本类型,然后在进行输入就可以了。

代码:

再解决一下表头问题:

再看一下具体的代码:

<strong> Public Sub ExportExcel(ByRef frmName As Form,ByRef flexgrid As DataGridView)
        Dim xlApp As New Excel.Application
        Dim xlBook As Excel.Workbook
        Dim xlSheet As Excel.Worksheet

        Dim answer As Int16
        xlBook = xlApp.Workbooks.Add(True)
        xlSheet = xlBook.Worksheets.Add()

        If flexgrid.Rows.Count = 0 Then
            answer = MessageBox.Show("当前记录为空,仍需导出吗?",frmName.Text,MessageBoxButtons.YesNo,MessageBoxIcon.Question)

            If answer = DialogResult.No Then
                Exit Sub
            End If
        End If


        With flexgrid
            Dim drow As Int16
            Dim dcol As Int16

            drow = flexgrid.Rows.Count '行
            dcol = flexgrid.Columns.Count '列

            xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(drow + 1,dcol)).Select() '选中所需单元格
            xlApp.Selection.NumberFormatLocal = "@" '将单元格的格式定义为文本

            'excel.cell(行的索引,列的索引)两个索引都是从1开始的
            'DataGridView(列的索引,行的索引)两个索引都是从0开始的

            For i = 0 To dcol - 1
                xlSheet.Cells(1,i + 1) = flexgrid.Columns(i).HeaderText
            Next


            For i = 0 To drow - 1 'i为0到总行数-1的循环
                For j = 0 To dcol - 1 'j为0到总列数-1的循环

                    xlSheet.Cells(i + 2,j + 1) = flexgrid.Item(j,i).Value.ToString

                Next
            Next
        End With
        xlApp.Visible = True


    End Sub</strong>
希望同样遇到这些问题的同学,能从这里找到些答案,能给大家一点帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读