精华内容
下载资源
问答
  • 使用VB生成.exe文件在其他电脑运行

    千次阅读 2019-12-28 18:26:10
    如果没有使用ActiveX控件,则生成的EXE文件可以在没有装VB环境的电脑运行,如果使用了ActiveX控件,则在工程—部件—下面的这个图标的地方,找到这个文件将其复制到EXE文件所在的位置,就可以在没有装VB环境的电脑...
    • 咳咳,我是小白一个,写博客作为学习记录,加深印象,可能写的不对,或者有些地方写的不全,欢迎在下评论哈,我会及时更正
    • 传送门:博客汇总帖
    • 正文开始

    生成EXE文件

    在这里插入图片描述

    注意

    如果没有使用ActiveX控件,则生成的EXE文件可以在没有装VB环境的电脑运行,如果使用了ActiveX控件,则在工程—部件—下面的这个图标的地方,找到这个文件将其复制到EXE文件所在的位置,就可以在没有装VB环境的电脑运行
    在这里插入图片描述

    展开全文
  • 需求说明报表展现后可以通过工具栏中的导出按钮将当前展现的报表导出成 excel 文件,但是在实际使用中通常会要求报表不需要展现,直接通过一些操作将报表导出成 excel 文件,并且往往会要求批量导出成 excel 文件,...

    需求说明

    报表展现后可以通过工具栏中的导出按钮将当前展现的报表导出成 excel 文件,但是在实际使用中通常会要求报表不需要展现,直接通过一些操作将报表导出成 excel 文件,并且往往会要求批量导出成 excel 文件,下面通过几个示例介绍下报表不展现,如何批量生成 excel 文件。

    实现这种需求一般要用到 api 方式,批量生成 excel 文件,按照方式上来分大体上可以分为三类:

    一:单表导出单 excel 多 sheet

    二:多表导出单 excel 多 sheet

    三:多表导出多 excel 文件

    单表多 sheet

    此种方式通常是报表格式固定,然后根据某个参数对数据过滤,导出 excel 时需要导出多个参数的数据,并且每个参数的数据放到同一个 excel 的不同 sheet 里,比如本例中按照地区统计订单信息,要求导出时每个地区数据导出到一个 sheet 中,地区名称做为 sheet 名,下面看下这种做法:

    报表设计界面不必多说,按照需求设计就行,如下图:

    9ca3420959cf17402c4ef501eaff6d7b.png

    报表中增加一个参数:area,用于接收地区参数,然后在数据集中通过这个参数过滤数据就行。

    Api 中用到 jsp 代码如下:

    <%@ page contentType="text/html;charset=UTF-8" %>
    
    <%@ page import="com.raqsoft.report.model.*"%>
    
    <%@ page import="com.raqsoft.report.usermodel.*"%>
    
    <%@ page import="com.raqsoft.report.view.*"%>
    
    <%@ page import="com.raqsoft.report.util.*"%>
    
    <%@ page import="com.raqsoft.report.view.excel.ExcelReport"%>
    
    <%
    
     String report = request.getParameter( "report" );//获取报表名称
    
    if(report==null) report="订单.rpx";//如果url上报表名为空,则取订单表
    
    String fileName=report.substring(0,report.length()-4);//读取文件名,用于设置excel名称
    
    String reportName = request.getRealPath("WEB-INFreportFiles"+report);//
    
    String exportPath=request.getRealPath("/export");//在应用根目录下建export目录,放置导出文件
    
    ReportDefine rd = (ReportDefine)ReportUtils.read(reportName);//读取报表
    
    String areas="华北,东北,西北,华南,西南";//此例按照地区循环,实际中可以接收其他参数,也可以从数据库中获取数据
    
    String[] area=areas.split(",");
    
    ExcelReport er=new ExcelReport();
    
    for(int i=0;i<area.length;i++){//按照地区做循环
    
    Context cxt = new Context();
    
    cxt.setParamValue("area",area[i]);//area是报表中定义参数,此处设置参数值
    
      Engine engine = new Engine(rd, cxt); //构造报表引擎
    
      IReport iReport = engine.calc(); //运算报表
    
     er.export(area[i],iReport);//将报表结果设置到excel sheet里
    
    }
    
    er.saveTo(exportPath+"/"+fileName+".xls");//生成excel
    
    %>
    

    这样,就会在应用根目录的 export 目录下生成对应的 excel 文件,生成 excel 文件如下:

    c44d17b1ea2970776523a70ca9f3b543.png

    多表多 sheet

    此种情况应用于导出的 excel 由多个报表组成,然后每个报表导出到 excel 中不同 sheet 中,并且有可能每个报表的参数不同(如果参数相同,那么和示例一类似,只是按报表名称循环就行),下面看下具体实现过程:

    由于不同报表参数可能会不同,所以在 api 中解析每个报表以及对应参数难度会比较大,此例要求通过 url 访问报表时,按照特定格式访问,比如:

    http://localhost:6868/demo/reportJsp/exportExcel1.jsp?report={无参数报表名 1}{无参数报表名 2}{报表 1( 参数 1=value1; 参数 2=value2;…)}{报表 2( 参数 1=value1; 参数 2=value2;…)},比如:http://localhost:6868/demo/reportJsp/exportExcel1.jsp?report={test1.rpx}{test2.rpx(arg1=11;arg2=22;arg3=33)}这种方式,现在在高版本的 tomcat 中,会有一些特殊符号的限定,使用时可以将 {} 转换成对应的 urlencode 方式,{为 %7B,}为 %7B,如果有其他值的话,做对应转换就行,url 设置完成后,接下来就看下如何解析这个 url,并且批量生成 excel,代码如下:

    <%@ page contentType="text/html;charset=UTF-8" %>
    
    <%@ page import="com.raqsoft.report.model.*"%>
    
    <%@ page import="com.raqsoft.report.usermodel.*"%>
    
    <%@ page import="com.raqsoft.report.view.*"%>
    
    <%@ page import="com.raqsoft.report.util.*"%>
    
    <%@ page import="com.raqsoft.report.view.excel.ExcelReport"%>
    
    <%
    
     //此JSP参数格式为:report={无参数报表名1}{无参数报表名2}{报表1(参数1=value1;参数2=value2;...)}{报表2(参数1=value1;参数2=value2;...)}
    
    request.setCharacterEncoding( "UTF-8" );
    
     String report = request.getParameter( "report" );
    
     if( report == null || report.trim().length() == 0 ) throw new Exception( "请输入报表文件名及参数串report={无参数报表名}{报表1(参数1=value1;参数2=value2;...)}{报表2(参数1=value1;参数2=value2;...)}..." );
    
    String exportPath=request.getRealPath("/export");//在应用根目录下建export目录,放置导出文件
    
    String report1=report.replace("}","");//去掉串中的}
    
    String report2=report1.substring(1,report1.length());//去掉串中的最左侧的{
    
    String[] a=report2.split("{");//此时串中多个报表之间用{分隔,所以此处按照该符号split生成数组
    
    ExcelReport er=new ExcelReport();
    
    for(int i=0;i<a.length;i++){//按数组进行循环,也就是按报表循环
    
    if(a[i].lastIndexOf("(")<=0)//判断分割后的子串中是否包含(,如包含,代表有参数,不包含,则没有参数
    
    {
    
    String reportPath = request.getRealPath("WEB-INFreportFiles"+a[i]);//获取报表路径
    
     String sheetName=a[i].substring(0,a[i].length()-4);//获取sheet名称
    
     ReportDefine rd = (ReportDefine)ReportUtils.read(reportPath);//读取报表
    
     Context cxt = new Context();
    
     Engine engine = new Engine(rd, cxt); //构造报表引擎
    
    IReport iReport = engine.calc(); //计算报表
    
    er.export(sheetName,iReport);//将报表结果放入sheet
    
    }
    
    else{
    
     System.out.println("报表有参数,报表名为="+a[i].split("(")[0]);//如果有参数,则按(字符split,左侧为报表名
    
     String reportPath = request.getRealPath("WEB-INFreportFiles"+a[i].split("(")[0]);
    
     String sheetName=a[i].split("(")[0].substring(0,a[i].split("(")[0].length()-4);
    
     ReportDefine rd = (ReportDefine)ReportUtils.read(reportPath);
    
     Context cxt = new Context();
    
     String[] cs=a[i].split("(")[1].replace(")","").split(";");//右侧为参数串,并且去掉参数串的),多个参数用;隔开,所以此处按照;split
    
     for(int j=0;j<cs.length;j++){//按参数循环
    
     cxt.setParamValue(cs[j].split("=")[0],cs[j].split("=")[1]);//设置参数
    
     }
    
     Engine engine = new Engine(rd, cxt); //构造报表引擎
    
    IReport iReport = engine.calc();
    
    er.export(sheetName,iReport);
    
    }
    
    }
    
    er.saveTo(exportPath+"/test.xls");//生成excel
    
    %>
    

    多表多 excel

    此种方式和示例二类似,在实际使用中导出 excel 时要求每个报表导出成不同的 excel 文件,但是后续可能会涉及到下载问题,所以此种方式一般是要建立个临时目录,然后将多个 excel 放到临时目录内,可以进行打包下载。具体代码如下:

    <%@ page contentType="text/html;charset=UTF-8" %>
    
    <%@ page import="com.raqsoft.report.model.*"%>
    
    <%@ page import="com.raqsoft.report.usermodel.*"%>
    
    <%@ page import="com.raqsoft.report.view.*"%>
    
    <%@ page import="com.raqsoft.report.util.*"%>
    
    <%@ page import="com.raqsoft.report.view.excel.ExcelReport"%>
    
    <%
    
     //此JSP参数格式为:report={无参数报表名1}{无参数报表名2}{报表1(参数1=value1;参数2=value2;...)}{报表2(参数1=value1;参数2=value2;...)}
    
    request.setCharacterEncoding( "UTF-8" );
    
     String report = request.getParameter( "report" );
    
     if( report == null || report.trim().length() == 0 ) throw new Exception( "请输入报表文件名及参数串report={无参数报表名}{报表1(参数1=value1;参数2=value2;...)}{报表2(参数1=value1;参数2=value2;...)}..." );
    
    String exportPath=request.getRealPath("/export");//在应用根目录下建export目录,放置导出文件
    
    String fileName=Double.toString(Math.random()*100000000).toString().substring(0,6);
    
    String excelPath=exportPath+""+fileName;
    
    java.io.File file = new java.io.File(excelPath);
    
     if(!file.exists()) {
    
     file.mkdirs();
    
     } else {
    
     }
    
    String report1=report.replace("}","");//去掉串中的}
    
    String report2=report1.substring(1,report1.length());//去掉串中的最左侧的{
    
    String[] a=report2.split("{");//此时串中多个报表之间用{分隔,所以此处按照该符号split生成数组
    
    ExcelReport er=new ExcelReport();
    
    for(int i=0;i<a.length;i++){//按数组进行循环,也就是按报表循环
    
    if(a[i].lastIndexOf("(")<=0)//判断分割后的子串中是否包含(,如包含,代表有参数,不包含,则没有参数
    
    {
    
    String reportPath = request.getRealPath("WEB-INFreportFiles"+a[i]);//获取报表路径
    
     String sheetName=a[i].substring(0,a[i].length()-4);//获取sheet名称
    
     ReportDefine rd = (ReportDefine)ReportUtils.read(reportPath);//读取报表
    
     Context cxt = new Context();
    
     Engine engine = new Engine(rd, cxt); //构造报表引擎
    
    IReport iReport = engine.calc(); //计算报表
    
    ReportUtils.exportToExcel2007(excelPath+"/"+sheetName+".xlsx",iReport,false);
    
    er.export(sheetName,iReport);//将报表结果放入sheet
    
    }
    
    else{
    
     System.out.println("报表有参数,报表名为="+a[i].split("(")[0]);//如果有参数,则按(字符split,左侧为报表名
    
     String reportPath = request.getRealPath("WEB-INFreportFiles"+a[i].split("(")[0]);
    
     String sheetName=a[i].split("(")[0].substring(0,a[i].split("(")[0].length()-4);
    
     ReportDefine rd = (ReportDefine)ReportUtils.read(reportPath);
    
     Context cxt = new Context();
    
     String[] cs=a[i].split("(")[1].replace(")","").split(";");//右侧为参数串,并且去掉参数串的),多个参数用;隔开,所以此处按照;split
    
     for(int j=0;j<cs.length;j++){//按参数循环
    
     cxt.setParamValue(cs[j].split("=")[0],cs[j].split("=")[1]);//设置参数
    
     }
    
     Engine engine = new Engine(rd, cxt); //构造报表引擎
    
    IReport iReport = engine.calc();
    
    ReportUtils.exportToExcel2007(excelPath+"/"+sheetName+".xlsx",iReport,false);
    
    }
    
    }
    
    er.saveTo(exportPath+"/test.xls");//生成excel
    
    %>
    

    打包下载

    文件生成到对应目录下后,可以自己单独做个链接指向这个 excel 文件下载,也可以直接生成 excel 文件后直接进行下载,在对应 jsp 文件中增加如下代码:

    response.setContentType("application/msword");
    
     response.setHeader("Content-disposition","attachment; filename="+java.net.URLEncoder.encode(fileName+".xls", "UTF-8"));
    
     BufferedInputStream bis = null;
    
     BufferedOutputStream bos = null;
    
     try {
    
     bis = new BufferedInputStream(new FileInputStream( exportPath+"/"+fileName+".xls"));
    
     bos = new BufferedOutputStream(response.getOutputStream());
    
     byte[] buff = new byte[2048];
    
     int bytesRead;
    
     while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
    
     bos.write(buff,0,bytesRead);
    
     }
    
     } catch(final IOException e) {
    
     System.out.println ( "出现IOException." + e );
    
     } finally {
    
     if (bis != null)
    
     bis.close();
    
     if (bos != null)
    
     bos.close();
    
     }
    
     System.out.println ( "下载完成----------------" );
    
    File file = new File(exportPath+"/"+fileName+".xls");
    
    if (file.exists()) file.delete();//删除文件
    
    实际应用中可能会需要将文件大成zip包方式,比如示例三,这个直接百度下java程序打zip包,然后下载zip包就行。

    总结

    本文中介绍了如何通过 api 将报表批量导出成 excel 的方法,实际中也有可能生成 pdf 或者 txt 等,思路是一样到,到时候换用不同的 api 就行。

    展开全文
  • VB如何生成EXE文件

    万次阅读 2008-06-11 11:05:00
    今天在修改VB 6.0程序的时候(都没有写过VB 6.0)怎么调试都没有办法将原来的.exe文件更新了,后来在菜单上找了好久终于看到了在File菜单栏下面有一个Make xxx.exe 的项,,抱着试试看的态度点了一下,,哇,,成功了...

    今天在修改VB 6.0程序的时候(都没有写过VB 6.0)怎么调试都没有办法将原来的.exe文件更新了,后来在菜单上找了好久终于看到了在File菜单栏下面有一个Make xxx.exe 的项,,抱着试试看的态度点了一下,,哇,,成功了。。高兴呀,,哎,后悔英语没有学好的!后来在网络上找到了一个人写的,呵,有打包的方法,,特此一起收取:

    1、简单的程序,就只要在"File(文件)"菜单下的"Make xxx.exe(生成)",生成的EXE文件和你要用的数据库和其他外部文件一起移植到其他电脑上,就可以了。

    2、复杂的程序,建议用"打包",打包完以后,在其他电脑上安装以后再用.打包方法--------打开菜单栏“外接程序”——“外接程序管理器”,选择“打包和展开向导”,选择“加载/卸载”,确定。在“外接程序管理器”里找到“打包和展开向导”,打开“打包和展开向导”,再一步步进行打包就可以生成一个安装程序。

    展开全文
  • VBEXE中提取图标.rar

    2019-07-10 11:03:40
    VBEXE中提取图标,支持从DLL/EXE/OCX文件中提取图标,所有涉及到图标都会读取出来,根据用户的选择导出对应图标,运行效果如演示截图所示,看上去貌似很强大的图标提取程序。
  • 不是源代码,只是一个小TXT文件,很简短,但是四两拨千斤
  • 我喜欢用VB6编写程序,因为编写效率高,不需要.net framework 这个恶心的东西。 生成程序后,他妈的,金山说是病毒。就是不信,先从代码方面测试,因为本人有大量累积的模块和类代码,直接调用的,就算大部份...

    我喜欢用VB6编写程序,因为编写效率高,不需要.net framework 这个恶心的东西。


    生成程序后,他妈的,金山说是病毒。就是不信,先从代码方面测试,因为本人有大量累积的模块和类代码,直接调用的,就算大部份不会用到,我也会加到程序里的。


    1、程序代码测试->结果:失败,他妈的,不是人,我自己写的程序也算是病毒,算你们狠。


    2、加壳逼开杀毒软件->结果:失败。无语~~~~要说他妈的杀毒软件先进了?加壳也检测到了,先进到把我自己写的无毒程序都认为是毒,真是无语。


    3、窗体解决->结果:OK。多个一个FRM上去,先进的杀毒软件,说:你有多个窗体的,应该不是病毒,放你过吧。真叼。真的服了写杀毒软件的“高手”。


    今晚调试一整天,大家以后,多加几个窗体试试吧,因为VB6编译会把FRM加进去,可以让EXE文件的结构和大小产生变化,有利于“逃过”那些先进的杀毒软件。

    展开全文
  • VB制作有导出函数的DLL, 默认vb生成的dll没有输出函数, 原因是在连接时没有指明, 所以我们自己写一个程序替换原来的link.exe, 就是在连接时处理一下就可以了。 把下载的link.exe替换原来的link.exe
  • vb sql 导入导出 excel 源码打包

    热门讨论 2012-08-24 16:06:23
    个人收集的vb6.0 sql数据库 导入导出 excel 源码 打包发上来,希望能帮助到你
  • VB反编译,可以把EXE转成工程文件

    热门讨论 2008-11-08 22:14:51
    VB反编译,可以把EXE转成工程文件 VB反编译,可以把EXE转成工程文件
  • vb开发的小软件, 实现功能为: 可导出指定目录下所有文件的文件名到Excel中, 方便常规一些办公中重复性工作
  • 这篇文章要讨论的是在一个VB程序中如何产生出另一个Exe文件。 要实现这个目的,必须符合以下几个条件: 第一、编写这样的程序时,具备欲生成的Exe文件 第二、事先知道欲生成的Exe文件大小 其实这两个条件可以说不是...
  • VB数据库导出WORD

    千次阅读 2010-03-19 11:15:00
    考虑到在VB中画表等操作比较繁琐,所以采用了饮用模版的导出形式。仅供大家学习参考。Dim cn As New ADODB.Connection ‘定义数据库Dim rs As New ADODB.RecordsetDim scan As String ‘存储查找数据库Dim Appword ...
  • VB6.0编译环境能打开excel ,但生成exe文件后,就报错![图片说明](https://img-ask.csdn.net/upload/201705/17/1495000293_517657.jpg) ``` Option Explicit Dim newxls As New Excel.Application Dim ...
  • 我知道在/bin下会有exe文件生成,但是有没有什么方法可以象VB6.0中那样直接生成exe文件? vb.net的主要应用不是用来做标准应用程序的么? _________________________________________________________________________...
  • ![图片说明](https://img-ask.csdn.net/upload/201611/03/1478165501_257639.png)
  • VB6.EXE - 应用程序错误解决办法

    千次阅读 2015-01-16 08:56:47
    使用VB6.0的时候,无论是打开空的工程或其它工程,当关闭软件的时候,偶尔会... VB6.EXE -应用程序错误  "0x0055a8ea"指令引用的"0x608af85c"内存。该内存不能为"read"。  "0x0055adc8"指令引用的"0x608af87
  • 开发语言VB,报表时通过水晶报表实现的。 编译后的程序在xp系统中能导出word报表(安装的微软的2003)。 但在我w7系统下导出的word为空,导出excel,PDF格式都可以(不管是微软的2003或2010都遇到相同的问题)。 ...
  • 一).创建部署项目 1. 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。 2. 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。...
  • VB生成的DLL工程导出函数

    千次阅读 2008-08-20 20:42:00
    VB是方便的快速开发语言之一,但是VB和最近流行的Python相比,有一致使的缺点,就是它为了尽可能方便程序员傻瓜式开发,而把自己... 刚好这段时间要用VB做一个Demo,故分析了一下,发现VB的Link.exe是支持导出函数的,
  • VB6 处理pdf 和jpg文件

    千次阅读 2017-02-07 00:35:17
    因为VB6比较旧了,很多主流的插件没有vb6可用的api或者示例代码,网上找了很久,总结一下VB6可行的方案:一、处理pdf文件1.Apache PDFBoxPDFBox 是一个使用Java编写的开源的PDF文档处理库 可以在这里下载: ...
  • 最近在敲机房的 [学生查看上机记录] 时,遇到一个问题,它需要将从数据库查到的记录(有一条或多条)导出为Excel表格,于是我添加了MSHFlexgrid控件,为什么不用MSFlexgrid控件呢?因为这是老版本的控件了,这个控件...
  • VB Link

    2008-08-20 20:36:29
    VB建立的DLL工程不能导出函数,使用本工具可以很方便地让VB导出函数。 使用介绍:进入VB安装目录,把原来的LINK.EXE改名为LINK2.EXE,把本link.exe拷过去即可。 具体使用方法请参照:...
  • 最后一个参数Encabezado决定是是否导出表头。默认是导出的。函数代码如下:Public Function ListviewToCSV(ListView As ListView, sFile As String, Optional Encabezado As Boolean = True) As ...
  • 机房查询上机记录-导出为Excel表 添加引用“Microsoft Excel 16.0 Object Library” 在可用的引用中没有找到该引用 一、单机浏览 二、找到Office安装文件夹,打开 三、找出Excel.EXE文件选中打开,可...
  • 方案一 调用Kill方法,结束进程,居然很多人就...奇葩的事情: 如果你把System.GC.Collect()放在程序入口,虽然不能帮你清理这次的Excel.exe,但是下一次运行的时候,会帮你清理掉,也就是说,不会反复运行,产生一堆E.
  • visual studio 2017生成应用exe

    万次阅读 2019-05-10 13:28:06
    要把自己的程序打包成exe文件,不能每次都得靠ide才能执行吧!!! 步骤 安装打包插件 如果其他项目类型中没有选项(Visual Studio Installer),点击“工具”,选择“拓展和更新”,点击联机,搜索“Microsoft ...
  • VB.NET 教程_01_基础语法

    万次阅读 多人点赞 2018-08-08 00:48:58
    VB.Net是一种简单,现代,面向对象的计算机编程语言,由微软开发,将.NET Framework和公共语言运行库的强大功能与作为Visual Basic标志的生产力优势相结合。 Visual Basic .NET(VB.NET)是在.NET Framework上...
  • VB.NET 导出数据到EXCEL中

    千次阅读 2005-01-01 01:10:00
    ----------VB.NET 导出数据到EXCEL中------------- 在引用当中引入Microsoft Excel 11.0 Object Library Dim oExcel As New Excel.Application Dim obook As Excel.Workbook Dim oSheet As Excel.Workshe
  • 大牛制作的将ifix中historian记录(.H04/H08/H24)转换为CSV表格文件导出工具,并且包含VB源码,可学习相关HDA API接口的使用方法。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,221
精华内容 1,688
关键字:

vb导出exe