组态王数据报表导入到excel

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组态王数据报表导入到excel相关的知识,希望对你有一定的参考价值。

ReportSaveAs()

此函数为报表专用函数。将指定报表按照所给的文件名存储到指定目录下,ReportSaveAs支持将报表文件保存为rtl、xls、csv格式。保存的格式取决于所保存的文件的后缀名。使用格式如下:
ReportSaveAs(ReportName,FileName);
参数:
ReportName:报表名称
FileName:报表存储路径和文件名称
返回值返回存储是否成功标志:
0 - 成功
-3 - 失败(注意定义返回值变量的范围)

例如1:
将报表“实时数据报表”存储为文件名为“数据报表1.RTL”,路径为“C:\My Documents”,返回值赋给变量“存文件”:
存文件=ReportSaveAs(“实时数据报表”, “C:\My Documents\数据报表1.RTL”);

例如2:
将报表“实时数据报表”存储为EXCEL格式的文件,文件名为“数据报表1.xls”,路径为“C:\My Documents”,返回值赋给变量“存文件”:
存文件=ReportSaveAs(“实时数据报表”, “C:\My Documents\数据报表1.xls”);

上面是组态王里面的实例!我按上面来例子来写出现问题!
我把我做的报表改名为(实时数据报表)
做一个按钮(按下时)ReportSaveAs(“实时数据报表”, “C:\My Documents\数据报表1.xls”);
点确认就会出现 (变量' “实时数据报表”'未定义)请问是什么原因,是符号用错了还是什么情况。

参考技术A 你的报表名得改成“实时数据报表”才行啊追问

我的报表明于改了实时数据报表

追答

string filename;
filename="C:\My Documents\数据报表1.xls”;
ReportSaveAs("实时数据报表",filename);

追问

string filename;
filename="C:\My Documents\数据报表1.xls”;
ReportSaveAs("实时数据报表",filename); 还是不行!哥们你有试过没有!我做了一个按钮,把你这个复进去,确认 !显示错误 要求:

追答

我当然做过啊 你检查下标点要在英文模式下输入 你是建了个按钮,在“左键弹起”下写的脚本么

本回答被提问者采纳
参考技术B 世界万物都是骗人的。

报表工具如何实现多次导入Excel

很多人在开发报表的时候会遇到将多张表样相同的excel导入到模板,然后提交至数据库中。但问题是很多情况,在线导入不支持一次性选择多个excel,一次只能选择一个excel,也不能将多个excel中的数据在不提交入库的前提下导入到模板中,即如果在导入excel之前,web页面里面有数据,导入excel之后会覆盖之前的数据。

那这样的问题是不是无法解决呢?

解决的思路是利用FineReport自定义一个excel导入按钮,在点击该按钮的时候将上一次导入到模板中的数据进行提交,同时刷新页面,让页面恢复到原始的空白状态,并实现excel导入操作,然后再点击导入按钮,导入下一个excel,以此类推,这样在操作上就会简单很多。

比如将下面2张表样相同的excel导入到FineReport模板中:

技术分享
 

1.修改其表样,使其与excel中的标题名保持一致,如下图:


技术分享
 

2.报表填报属性修改

修改报表填报属性中列和数据库中列的对应,这里只需要修改类别ID对应的值,修改为map(C2, "ds2", 2, 1)。

3.自定义导入按钮

点击模板>模板web属性>填报页面设置,双击工具栏中的自定义按钮,将该按钮添加到顶部工具栏中,同时删除内置的导入Excel按钮和提交按钮,如下图:


技术分享
 4.自定义事件编写

在解决思路中描述了自定义按钮需要执行的操作为:在点击按钮的时候将上一次导入到模板中的数据进行提交,同时刷新页面,让页面恢复到原始的空白状态,并实现excel导入操作。

在工具栏编辑界面,选中自定义按钮,点击自定义事件,如下图:


技术分享
 

在JavaScript脚本中写下js语句,如下图:

 

技术分享
 

var value=contentPane.getCellValue(0,1,2);  
if (value!="") {    
    FR.Msg.confirm("提示", "是否提交上一次导入数据", function(result){  
            if(result){  
            _g(‘${sessionID}‘).writeReport();  
            contentPane.refreshAllSheets();  
            contentPane.importExcel();  
        }  
        });  
}   
else{  
    contentPane.importExcel();  
    }  

 

 点击填报预览,点击导入Excel这个自定义按钮,选择第一个需要导入的Excel,然后再点击第二个需要导入的Excel,页面会提示是否提交上一次导入数据,点击确定,则会将上一次导入数据提交至数据库,然后再弹出文件选择框,这时就可以选择第二个Excel,以此类推。 

要提醒的是,在利用此工具填报报表在线多次导入Excel时只支持空白模板的导入,即填报模板中不能有原始数据存在;在线多次导入Excel支持各种样式的填报报表,不仅仅局限于行式填报报表,但是如果是非行式填报报表,报表的控件位置需要与Excel中的数据位置保持一致,行式填报报表则需要保持标题名一致。

以上是关于组态王数据报表导入到excel的主要内容,如果未能解决你的问题,请参考以下文章

如何实现组态王与OPC数据交换

php打印报表

组态王如何显示实时天气

报表工具如何实现多次导入Excel

报表工具如何实现多次导入Excel

组态王能读PLC寄存器,不能写入数据。