机房系统——导出excel表
来源:互联网 发布:邮件服务器25端口不通 编辑:程序博客网 时间:2024/05/19 18:17
查询窗体弄出来了,看了网上的一些代码,也写完代码了,可就是不能运行,问题请看下图:
然后我再看看明明定义了啊,为什么还是不行,后来想起来了,可能是没有引用某些东西,然后我就上网查,结果还是不错的,查到了,说是让我引用Microsoft Excel 11.0 Object Library这玩意,当然11.0是版本号,这个我还是清楚的,我安装的office是2016的(也就是我得引用Microsoft Excel 16.0 Object Library),所以我就去找,可是心凉了,竟然没有这一条,我好歹也是安装office了的,怎么这么不给面子。
然后继续搜吧,最后总算是解决了,下面来看看步骤吧:
在引用的界面点击浏览,找到Windows office的安装路径(主要是Excel应用程序的安装路径,请参考我的路径:C:\Program Files\Microsoft Office\root\Office16),文件类型选择可执行文件”.exe;.dll”(一定要选这个,因为后边我们需要找”excel.exe”,它属于执行文件,不选指定没有),然后再找到”excel.exe”,打开就可以了。
最后你就会发现引用窗体中出现了Microsoft Excel 16.0 Object Library这玩意,神奇不。(总算解决了哈哈,开心)
下面是查询和导出excel的代码:
Private Sub cmdExportExcel_Click() Dim xlsapp As Excel.Application '声明excel对象 Dim xlsbook As Excel.Workbook '声明工作簿对象 Dim xlssheet As Excel.Worksheet '声明工作表 Dim j As Long Dim i As Long Set xlsapp = CreateObject("excel.application") '创建应用程序 Set xlsbook = xlsapp.Workbooks.Add '创建新的空白工作簿 Set xlssheet = xlsbook.Worksheets(1) '设置应用表 With xlsapp .Rows(1).Font.Bold = True '设置字体格式 End With '将MSFlexGrid1的内容导入到电子表格中 For i = 0 To MSFlexGrid1.Rows - 1 '通过循环来添加控件中的数据到Excel表中 For j = 0 To MSFlexGrid1.Cols - 1 '由于第一行是表头,所以添加数据从第二行开始。 xlssheet.Cells(i + 1, j + 1) = "'" & MSFlexGrid1.TextMatrix(i, j) '因为Excel表从第一行第一列开始,而MSFlexGrid1从第0行第0列开始,所以需要加1 Next j Next i xlsapp.Visible = True '显示excel表格End SubPrivate Sub cmdInquiry_Click() Dim txtSQL As String Dim MsgText As String Dim mrc As ADODB.Recordset '判断卡号是否为空 If Trim(txtCardNo.Text) = "" Then MsgBox "卡号不能为空", vbOKOnly + vbExclamation, "提示" txtCardNo.SetFocus Exit Sub End If '判断卡号是否为数字 If Not IsNumeric(Trim(txtCardNo.Text)) Then MsgBox "卡号请输入数字!", vbOKOnly + vbExclamation, "提示" txtCardNo.Text = "" txtCardNo.SetFocus Exit Sub End If txtSQL = "select * from line_info where cardno='" & txtCardNo.Text & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc.EOF = True Then MsgBox "没有此卡号,请重新输入!", vbOKOnly + vbExclamation, "提示" mrc.Close Exit Sub End If Do While Not mrc.EOF If IsNull(mrc!offdate) = False Then mrc!offdate = "" End If With MSFlexGrid1 .Rows = .Rows + 1 .CellAlignment = 8 .TextMatrix(1, 0) = mrc!cardNo .TextMatrix(1, 1) = mrc!studentNo .TextMatrix(1, 2) = mrc!ondate .TextMatrix(1, 3) = mrc!OnTime .TextMatrix(1, 4) = mrc!offdate .TextMatrix(1, 5) = mrc!offtime .TextMatrix(1, 6) = mrc!Cash .TextMatrix(1, 7) = mrc!Status End With mrc.MoveNext Loop cmdExportExcel.Enabled = TrueEnd SubPrivate Sub Form_Load() cmdExportExcel.Enabled = False With MSFlexGrid1 .CellAlignment = 8 .TextMatrix(0, 0) = "卡号" .TextMatrix(0, 1) = "姓名" .TextMatrix(0, 2) = "上机日期" .TextMatrix(0, 3) = "上机时间" .TextMatrix(0, 4) = "下机日期" .TextMatrix(0, 5) = "下机时间" .TextMatrix(0, 6) = "消费金额" .TextMatrix(0, 6) = "余额" .TextMatrix(0, 7) = "备注" End WithEnd SubPrivate Sub cmdExit_Click() Unload MeEnd Sub
温馨提示:由于我们很多窗体都需要导出Excel表,所以我没有必要每个窗体都敲一遍这个代码,我们应该在模块中写一个导出Excel表的公共函数,然后需要的只需调用一下就好了,是不是省事多了。这个时候可能会有人说不用每个都敲,我们只要敲一个,剩下的只需复制就好了,如果这么想的可真就有点“傻”了,因为我们编写程序的时候,遇到能够复制粘贴的代码,就代表代码冗余了,所以任何事情任何东西都不能想的太简单,肯定会有简单的方法等着我们去发现!我在模块中弄得时候出现Bug了,如果哪位大佬会的话,记得指点我一下,留言或者通过“联系我”的栏目中的联系方式告诉我,万分感谢!
- 机房系统——导出excel表
- 机房收费系统—导出Excel表
- 机房收费系统—导出excel
- 第一次机房收费系统—导出Excel
- 机房收费系统—查询并导出Excel表
- 机房收费系统————导出到Excel
- 机房收费系统问题总结——导出Excel
- 【机房收费系统C#版】——导出Excel
- 机房收费系统——窗体与Excel导出
- 第一次机房收费系统—Excel导出数据
- 机房收费系统之导出excel表
- 机房收费系统---导出Excel表
- 机房收费系统--Excel导出
- 机房收费系统~导出Excel
- 机房收费系统—Excel表
- 机房收费系统—调用Excel表
- 【机房合作】——导出Excel表格
- 机房重构—导出Excel
- 初学者---Android 多渠道打包
- 关于define宏定义
- 5.Java中的访问控制权限
- QT TCPsocket 封包 粘包分析
- 单源最短路径
- 机房系统——导出excel表
- Rpackage【ggplot2】
- mysql如果数据不存在,则插入新数据,否则更新的实现方法
- (对象类作为参数的方法)
- Java Web 服务器的消息推送 几种方案
- 异步IO、协程、yield from
- opencv 2.4+ c++ 边缘梯度计算
- 多线程
- pygame导入音频