报表按照日期另存为新的EXCEL文件

#pragma option(mbcs)

#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] = ""; char DateTime[30] = "";
SYSTEMTIME sysTime;
__object* pExcel = NULL; //建立 pExcel 指针 用来对 EXCEL 进行操作
HWND handle=NULL;
handle=FindWindow(NULL,"WinCC-运行系统 - ");
GetLocalTime(&sysTime);
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 ("d:\\Day_Report.XLS");
pExcel->ActiveWorkbook->SaveAs(FileName);//存盘
pExcel->Workbooks->Close();//关闭文件
pExcel->Quit();//退出Excel
__object_delete(pExcel);

以上代码在wincc上运行后没有反应,请大家帮忙看看。谢谢

最佳答案

FindWindow函数应该调用的动态链接库是user32.dll吧,再是你获得运行画面窗口的句柄干嘛用啦?
我之前还有有一回用ActiveWorkbook貌似出错了,改用Workbook(1)之后好用了,但是没找到问题出在哪。当然前提是你的当前表就是第一个表才可换用。

个人观点,仅供参考。

提问者对于答案的评价:
采纳

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午2:20
下一篇 2019年6月11日 上午2:20

相关推荐