导出数据的时候,经常需要将软件中的表格导出为excel,学习vb的时候用到了这个功能,当时用的是面向过程的编程方法,哪里需要了,就在哪个窗体写一遍代码。这次,我们使用面向对象的思维再次实现这个功能。对比一下,两个方法有什么区别。

这里使用vb.net作为载体,和面向过程一样,第一步还是要添加引用。为了增加复用性,需要把这个功能做成一个模块,因为是导出数据,所以,把它放到U层,需要在U层添加引用。如图:

将图中画红框的选中就可以了。

然后在U层添加模块,模块代码如下:

Imports Microsoft.Office.Interop.Excel
'引用excel表格内容
''' <summary>
''' 此模块用于将datagridview内容导出为excel
''' </summary>
''' <remarks>dgv作为datagridview控件缩写,当做一个参数</remarks>
Module ExportExcelPublic Function ExportExcel(ByVal dgv As DataGridView) As Boolean
        '实例化一个excel,创建一个工作簿,工作簿可见Dim myExcel As New Microsoft.Office.Interop.Excel.ApplicationmyExcel.Application.Workbooks.Add(True)myExcel.Visible = True'导出表头Dim i, j, k As Integer
<span style="white-space:pre">  </span>'利用循环,填写表头For k = 0 To dgv.ColumnCount - 1myExcel.Cells(1, k + 1) = dgv.Columns(k).HeaderTextNext'利用循环嵌套,将datagridview内容放到导出为excel表格'这里有两个循环i表示行循环,j为列循环,excel先从行开始循环,excel需要从列开始循环For i = 0 To dgv.Rows.Count - 1For j = 0 To dgv.ColumnCount - 1myExcel.Cells(i + 2, j + 1) = dgv(j, i).Value.ToStringNextNextReturn TrueEnd Function
End Module

这里唯一需要注意的地方是嵌套循环,i循环作为行循环,j循环作为列循环,excel导入数据是从行开始循环的,但是datagridview导出数据却是先从列开始循环的。刚开始不明白,把行和列写错了,运行的时候一直报错。

模块写完之后,只要用到这个功能,只需要调用这个模块即可。

从功能来说,面向过程和面向对象实现的过程是一样的,第一步,添加引用;第二步,创建excel工作簿;第三步,通过循环,将datagridview数据导出excel。从复用性来说,都可以把代码做成模块然后进行调用。通过这些对比,发现,导出excel在面向过程中和面向对象中是没有区别的。

目前正在逐步摸索面向对象的奥妙,如有错误,敬请指正。

vb.net datagridview控件导出excel相关推荐

  1. C# 使用微软自带控件导出excel

    导出excel:使用微软默认的dll,通过点击导出按钮启用js的open方法新建出一个ashx页面将文件导出到浏览器进行下载,此处放出部分代码以大概表示出顺序,完整代码见https://www.cnb ...

  2. 数据绑定控件导出到excel

    aspx页面代码 <div><asp:GridView ID="GridView1" runat="server"></asp:G ...

  3. VB.NET中DataGridView控件

    VB.NET中对于表格数据的显示经常使用到DataGridView控件,其以丰富多样的数据表呈现形式被程序猿喜爱. 本人在做一个小系统中运用DataGridView控件的部分属性,这些功能的使用在使用 ...

  4. .Net C# 如何读取Excel数据内容写入数据库并通过DataGridView控件动态刷新显示

    目录 介绍 选择Excel文件并读取内容 将数据内容写到数据库 更新dataGridView内容 介绍 本篇文章主要介绍C# winForm窗体如何打开Excel文件读取其中的内容,并将其内容写到数据 ...

  5. vb.net 教程 3-10 窗体编程 datagridview控件 1 初步

    版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的. datagridview控件常用于显示数据,所以在vs编辑器中是在工具箱"数据&quo ...

  6. vb.net 教程 3-10 窗体编程 datagridview控件 3 禁止追加行 与 禁止删除行

    版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的. 如<vb.net 教程 3-10 窗体编程 datagridview控件 1 初步 > ...

  7. (一)C#Winform导入Excel数据到datagridview控件

    C#Winform导入Excel数据到datagridview控件 #此次导入Excel数据借助了ExcelDataReader插件.(由于我需要的是打开工作簿时能够选择工作表绑定于datagridv ...

  8. winform datagridview控件使用

    最近做项目时,显示查询结果总需要绑定到datagridview控件上显示,总结了给datagridview绑定数据的方式,以及导出datagridview数据到excel表格,如有错误请多指教 1.直 ...

  9. C#中DataGridView控件使用大全

    c datagridview 分类: C/C++/C# DataGridView 动态添加新行: DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自 ...

最新文章

  1. 弹出窗口以及关闭窗口
  2. 跨平台打造移动原生应用的10大武器
  3. FD.io/VPP — 流量追踪
  4. 双机热备软件,Legato AAM,双机容错,集群软件,磁盘阵列
  5. 「高并发秒杀」mysql只修改字段名称
  6. vb表格控件_(超级干货)ExcelVBA拆分表格并分别发送邮件增强版
  7. 二叉树路径应用举例(基于非递归后序遍历)
  8. HDU - 2457 DNA repair(AC自动机+dp)
  9. 《MySQL——order by逻辑(全字段排序与rowid排序)》
  10. 阿里P7大牛手把手教你!一眼就能看懂的Android自学手册,真香!
  11. linux有个进程有问题_第五十五章、linux下进程的基本知识
  12. 微信支付需要证书认证时报“出现了内部错误”
  13. Js对接口数据归类整理
  14. 实战BootStrap:利用BootStrap制作全平台响应式站点
  15. 库克:苹果正在开发“会震爆你”的未来产品
  16. LCM模组的简介与质量管理(连载四)
  17. 【libuv】实现UDP转发
  18. vultarget-a红日靶场全面解析(完整版)
  19. devops学习(三) K8环境部署jenkins
  20. cherry MX-BOARD 3.0 拆解

热门文章

  1. 卡思满意度调查,奇瑞新能源位居第一
  2. 1分钟链圈 | 闪电网络通道数增加29.5%,突破1.1万条通道!EOS 在过去七天区块链活跃度中排名第一...
  3. Node.js(一):基础知识
  4. leetcode刷题优质题解(C++,Python,Go语言)
  5. 转载:3516A/D千兆网络变百兆方法
  6. 空气质量检测仪制作及相关学习小结(一)
  7. 创意界面设计_每个创意者都应该知道的设计基础
  8. Android中关于aar打包和集成
  9. Cursor一个使用chatgpt-4的ai辅助编程工具
  10. uView 扩展图标(使用阿里iconfont图标)