机房收费系统之导出为Excel

简介: <p><span style="font-family:KaiTi_GB2312; font-size:24px"><span style="white-space:pre"></span><span style="white-space:pre"></span>在学生信息管理系统中,有很多查询窗体。在机房收费系统中,也不例外。不过,前者只要求将数据显示在窗体中,后者则多了一步,即:将查询

在学生信息管理系统中,有很多查询窗体。在机房收费系统中,也不例外。不过,前者只要求将数据显示在窗体中,后者则多了一步,即:将查询到的信息导出为Excel表的形式。

这样的工作好熟悉,因为在作品展中试过很多次了。那时候,还没有学数据库,师父就让我们用Excel表来存储数据,以显示出来。所以,做起来还是比较得心应手的。

第一个窗体,学生查看上机记录,没有多想,就直接在导出为Excel命令下编写代码:

<span style="font-family:KaiTi_GB2312;font-size:24px;">Private Sub cmdExcel_Click()

    '直接创建程序导出到Excel表中
    
    Dim xlsApp As New Excel.Application    '定义Excel程序
    Dim xlsBook As Excel.Workbook          '定义工作簿
    Dim xlsSheet As Excel.Worksheet        '定义工作表
    
    Dim i As Integer                       '定义控件的行值
    Dim j As Integer                       '定义控件的列值
    
    If FlexOnlineRecord.Text = "" Then     '判断控件是否有内容
        MsgBox "没有记录可导出!", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    Else
        Set xlsBook = xlsApp.Workbooks.Add(1)            '创建新的工作簿
        Set xlsSheet = Excel.ActiveWorkbook.ActiveSheet  '创建新的工作表单
        
        For i = 0 To FlexOnlineRecord.Rows - 1           '显示数据
            For j = 0 To FlexOnlineRecord.Cols - 1
            xlsSheet.Cells(i + 1, j + 1) = FlexOnlineRecord.TextMatrix(i, j)
            Next j
        Next i
        
        xlsApp.Visible = True              '显示Excel表格
        'Set xlsApp = Nothing '交还控制给Excel
        xlsApp.Sheets(1).Columns.EntireColumn.AutoFit '自动调整列宽
    End If
    
End Sub</span>
后来想想,好几个窗体都要求将查询结果导入到Excel中,这样重复的代码量太多了,何不妨自己添加一个过程,到时候直接调用就可以了。于是,在模块中添加了一个名为ExportToExcel的过程,

<span style="font-family:KaiTi_GB2312;font-size:24px;">Public Sub ExportToExcel(FormName As Form, flex As MSFlexGrid)   </span>
<span style="font-family:KaiTi_GB2312;font-size:24px;">    '导出为Excel表的过程,前者为当前工作的窗体名,后者为控件名。
    
    Dim xlsApp As Object
    Dim xlsBook As Object
    Dim xlsSheet As Object
    
    Screen.MousePointer = vbHourglass
    
    Set xlsApp = New Excel.Application
    Set xlsBook = xlsApp.Workbooks.Add
    Set xlsSheet = xlsBook.Worksheets(1)
    
    On Error GoTo Err_proc
    
    Dim i As Integer
    Dim j As Integer
    
    With flex                           '将数据写入Excel表中
        For i = 0 To .Rows - 1
            For j = 0 To .Cols - 1
                xlsSheet.Cells(i + 1, j + 1).Value = "'" & .TextMatrix(i, j)
                
            Next j
        Next i
    End With
    
    xlsApp.Sheets(1).Columns.EntireColumn.AutoFit '自动调整列宽
    xlsApp.Visible = True
    Screen.MousePointer = vbDefault
    Exit Sub
    
Err_proc:

    Screen.MousePointer = vbDefault
    MsgBox "请确认您的电脑已安装Excel,或是否安装正确!", vbExclamation, "机房收费系统"

End Sub
</span>
其中,也许有的电脑上没有安装Excel程序,所以可以事先进行错误处理。有了这样一个过程,就方便多了,第二个窗体,......,后面的窗体,就可以在导出为Excel命令下直接编写代码为:

<span style="font-family:KaiTi_GB2312;font-size:24px;">Private Sub cmdExcel_Click()

    Call ExportToExcel(frmInquireRechargeRecord, MSFlexRechargeRecord)              ’调用导出为Excel表过程
    
End Sub</span>
这样确实简单很多,但文章的主要目的不是为了展示编写的代码,好让我们省事。而是,我想,其实,很多时候,解决问题的方法都不只只是一种,每个人思考的不同,方法也就会有所不同。代码的编写,也不是唯一的,只要自己思考过,即使运行失败了,也算是一种成功。



目录
相关文章
|
2月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
32 1
|
2月前
|
数据格式 UED
记录一次NPOI库导出Excel遇到的小问题解决方案
【11月更文挑战第16天】本文记录了使用 NPOI 库导出 Excel 过程中遇到的三个主要问题及其解决方案:单元格数据格式错误、日期格式不正确以及合并单元格边框缺失。通过自定义单元格样式、设置数据格式和手动添加边框,有效解决了这些问题,提升了导出文件的质量和用户体验。
202 3
|
2月前
|
Java API Apache
|
2月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
81 4
|
3月前
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
120 6
|
4月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
3月前
|
easyexcel Java UED
SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载
在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。
|
3月前
|
前端开发 JavaScript
💥【exceljs】纯前端如何实现Excel导出下载和上传解析?
本文介绍了用于处理Excel文件的库——ExcelJS,相较于SheetJS,ExcelJS支持更高级的样式自定义且易于使用。表格对比显示,ExcelJS在样式设置、内存效率及流式操作方面更具优势。主要适用于Node.js环境,也支持浏览器端使用。文中详细展示了如何利用ExcelJS实现前端的Excel导出下载和上传解析功能,并提供了示例代码。此外,还提供了在线调试的仓库链接和运行命令,方便读者实践。
478 5
|
3月前
|
前端开发 JavaScript Java
导出excel的两个方式:前端vue+XLSX 导出excel,vue+后端POI 导出excel,并进行分析、比较
这篇文章介绍了使用前端Vue框架结合XLSX库和后端结合Apache POI库导出Excel文件的两种方法,并对比分析了它们的优缺点。
1008 0
|
4月前
|
存储 Java
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
66 2