关于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的归档数据在建立之后就存储在.mdf文…

    SIMATIC WinCC 2019年6月11日
  • wincc 按钮打开文件夹

    我想用wincc按钮打开一个文件夹,该文件夹的名字是系统根据日期自动存的。如2016年12月,系统就以“2016年12月”命名的文件夹。然后,我又调用了一个日历控件,用户选择日历控…

    SIMATIC WinCC 2017年6月8日
  • wincc如何读取系统时间在设定的时间进行脚本运行

    现有一些数据要做比较,数据每两个小时更新一次,更新的时间为12点50,如果下一个时间数据没有更新则输出报警,请问这个要怎样写脚本比较方便 最佳答案 vbs  C…

    SIMATIC WinCC 2021年7月5日
  • 消息文本中出现??

    按照A0580的文档,读取报警记录数据到Excel后,发现消息文本中,除了英文字符能显示,中文字体都变成了问号????。请教各位专家,这是什么原因呢,怎么解决呢?谢谢。 问题补充:…

    2018年12月5日
  • WINCC报警弹窗问题

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

    SIMATIC WinCC 2020年11月1日
  • WINCC和程序解答

    OPN   "ANALOGY RESULT"      OP…

    SIMATIC WinCC 2017年6月6日
  • wincc 7.5如何做 每天定时导出数据历史记录

    wincc 7.5如何做 每天定时导出数据历史记录 钻石用户推荐最佳答案 通过WinCC基本功能实现批次查询及批次报表:https://mp.weixin.qq…

    SIMATIC WinCC 2020年11月1日
  • 上位机WINNC找不到OPC中变量

    4台200smartPLC同过OPC与WINCC通讯,OPC检测变量数据和wincc运行起来数据传输都没有问题,但在变量表里头无法找到PLC变量。 问题补充:无法找到稀油站的变量 …

    2020年11月1日
  • 报警消息的确认

    我在wincc7.3上组态了wincc alarmcontrol,并添加了报警记录。让电脑与PLC连接后,对报警记录地址进行强制,wincc alarmcont…

    2017年6月1日
  • Wincc项目问题

    别人给我发了一个WINCC项目,我打开后,显示启动本地服务器,点击后,弹出:外部或归档变量的个数超过软件需可所允许的范围。 不允许再创建新的外部变量或归档变量或进行修改。…

    SIMATIC WinCC 2019年6月11日