关于wincc跟excel的问题

我从网上下了一段c脚本进行生成excel,然后写数据,最后保存退出
c脚本如下:
------------------------------------
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{


int i;
#pragma code ("kernel32.dll")//调用动态链接库

VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
#pragma code ()
#pragma code("Shell32.dll")//调用动态链接库
VOID ShellExecuteA(HWND, LPCTSTR , LPCTSTR , LPCTSTR , LPCTSTR , INT);
#pragma code()
char FileName[30] = "";
SYSTEMTIME sysTime;
__object* pExcel = NULL; //建立 pExcel 指针 用来对 EXCEL 进行操作
__object* fso=NULL;

HWND handle=NULL;
handle=FindWindow(NULL,"WinCC-运行系统 - ");


GetLocalTime(&sysTime);
//***********************************
//SetTagWord("Minute",sysTime.wMinute);
//i=GetTagWord("Minute")+3;
//if (i>26) { GetTagWord("Minute") ;}
//else if (i<=26)
//{
sprintf(FileName,"d:\\Day_Report_%02d-%02d-%02d.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay);


pExcel = __object_create("Excel.Application"); //生成文件
pExcel->Visible =0;//控制生成的excel 文件是否可见,当1 时,生成excel文件时可见.
pExcel->Workbooks ->Open (FileName);
pExcel->Worksheets("sheet1")->Range("X1")->Value=GetTagChar("@ServerName");//Return-Type: char* 读取当前计算机名
pExcel->Worksheets("sheet1")->Range("X2")->Value=GetTagChar("@CurrentUser");//Return-Type: char* 读取当前操作员
pExcel->Worksheets("sheet1")->Cells(6,i)->Value=GetTagFloat("TAG1_1");
pExcel->Worksheets("sheet1")->Cells(7,i)->Value=GetTagFloat("TAG1_2");
pExcel->Worksheets("sheet1")->Cells(8,i)->Value=GetTagFloat("TAG1_3");
pExcel->Worksheets("sheet1")->Cells(9,i)->Value=GetTagFloat("TAG1_4");
pExcel->Worksheets("sheet1")->Cells(10, i)->Value=GetTagFloat("TAG1_5");
pExcel->Worksheets("sheet1")->Cells(11, i)->Value=GetTagFloat("TAG1_6");
pExcel->ActiveWorkbook->SaveAs(FileName);//存盘~
//pExcel->ActiveWorkbook->PrintPreview();//可以预览
//if (i>=27) { pExcel->ActiveWorkbook->PrintOut(); }//直接打印
pExcel->Workbooks->Close();//关闭文件
pExcel->Quit();//退出Excel
__object_delete(pExcel);
//}

//return 0;

}

假如我把pExcel->Visible =1;
点击按钮时候(我的c脚本写在左击按下上),那个excel界面会闪一下,然后从D盘中就是没有生成excel文件,这是怎么回事,,,请高手指点一下,,顺便看看这段语句有什么问题??

问题补充:
根据zhangli0- 资深顾问 提示,我用messagebox来调试了一下就是有这样的一个问题:
================================
pExcel = __object_create("Excel.Application"); //可以生成文件 就像附图1一样的,没有单元格的

MessageBox(NULL,FileName,"标22222222222222222222题", MB_OKCANCEL ); //能在对话中显示filename

pExcel->Visible =1; //excel弄成显示的

pExcel->Workbooks ->Open (FileName); 打开的时候就是提示没有找到该路径下的excel表格

最佳答案

在不同的地方插入messagebox,提示不同的内容,看执行到哪里不执行了就是哪里有问题
看不到你的图,说明你的文件保存的路径不对。如果这个路径下没有这个文件,你要先生成这个文件然后再保存数据。

提问者对于答案的评价:
你的思路很不错,谢谢。。。。后来我用GSC Diagnostics模板调试也不错的,,

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc211054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月12日 下午8:10
下一篇 2017年11月12日 下午8:10

相关推荐

  • wincc按钮失效

    现象如下:启动wincc后,画面里控制按钮每个都设置弹出控制对话框,可是发现当点击某个画面的一个控制按钮后,弹出对话框,再点第二个控制按钮,却发现按钮像失效了,不会弹出控制画面。可…

    SIMATIC WinCC 2017年11月12日
  • 为什么同一个wincc程序在不同电脑上运行后读到的归档数据不一样

    1.我在一台win7系统下的wincc7.3打开运行,生成对于数据的excel表格中的数据是对的,后面又找了一台电脑,安装了win10系统,wincc7.4打开数据不对。不知道是什…

    2021年7月5日
  • 获取键盘动作

    按下键盘A切换一个页面,按下键盘S切换到另一个页面!wincc的脚本该怎样写? 最佳答案 先在Wincc里做一个按钮,按钮配置动作“切换画面”,然后打开按钮的属性,找到快捷键属性,…

    SIMATIC WinCC 2019年6月11日
  • WINCC报警弹窗问题

    现在出差报警时 在wincc 画面上弹出一个类似于确认窗口,在全局动作中写的脚本如下,但不执行,请帮忙看看是什么问题#include "ap…

    SIMATIC WinCC 2020年11月1日
  • 求教内部变量的显示

    各位高人,我在内部变量中定义变量,如图1#中的变量为年、月、日等实时时间,全局变量VBS、c读取实时时间(如图2#VBS脚本、图3#c脚本)并在画面中显示,用C脚本的能正常显示(如…

    2021年7月5日
  • CSV文件的含义和脚本编写

    我想用CSV-Provide实现报表过程变量的记录,有那位前辈能告诉我CSV文件表格选择框 的文件的具体位置  我是要首先创建吗,并且用C脚本怎么样写…

    SIMATIC WinCC 2019年6月11日
  • Wincc 6.0图形按钮弹出询问框的问题

    请问各位大侠:      本人在WINCC界面/对象选项板/标准/窗口对象里面添加了一个圆形按钮,需要按鼠标动左键动作时…

    SIMATIC WinCC 2019年6月11日
  • WINCC 安装后的问题

    WINCC 安装后,用CTRL+ALT+DEL或CTRL+SHIFT+ESC无法调出任务管理器或登陆框,是怎么回事? 问题补充:TO: KCN 按照你…

    SIMATIC WinCC 2019年6月11日
  • 请教WinCCExplorer如何导出报警记录

    需要整理报警清单,但是报警信息太多需要分类简化,所以需要导出报警记录为Excel或者CSV格式。想问一下怎么能导出报警记录呢?使用varexim.exe可以不? 图片说明: &nb…

    2020年11月1日
  • MP277问题sd卡

    10分钟一次,30个变量,保存一个月不知道要多大的卡。我在电脑里仿真数据能保存,表格数据和屏数据一样。用佳能相机里的SD卡,第一次插入数据只能产生一EXCEL表格文件,里面是空的,…

    SIMATIC WinCC 2019年6月11日