技术论坛

 回复:wincc5.1怎么通过C脚本实时向excel传送数据 并保存以当天日期为名?

返回主题列表
作者 主题
power2004
游民

经验值:96
发帖数:73
精华帖:0
楼主    2006-04-04 15:22:12
主题:wincc5.1怎么通过C脚本实时向excel传送数据 并保存以当天日期为名?
有谁共鸣
侠圣

经验值:3112
发帖数:2153
精华帖:21
    2006-04-07 14:03:41
精华帖  主题:回复:wincc5.1怎么通过C脚本实时向excel传送数据 并保存以当天日期为名?
如下是本人繁忙中测试通过的代码:
(可以直接拷贝编译运行,但要注意记得在D盘创建命名问book1的excel文件!(即:d:\\book1.xls))

#pragma code ("kernel32.dll")

VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);

#pragma code ()



char FileName[20] = "";

SYSTEMTIME sysTime;

__object* pExcel = NULL;



GetLocalTime(&sysTime);

sprintf(FileName,"d:\\%d-%d-%d.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay);

pExcel = __object_create("Excel.Application.9"); //9表示用的是office 2000

pExcel->Visible = 1;

pExcel->Workbooks ->Open ("d:\\book1.xls");

pExcel->Worksheets("sheet1")->Range("A1")->Value=12;//GetTagFloat("wincctag1"); //写wincc的变量实时值到格A1中

pExcel->Worksheets("sheet1")->Range("A2")->Value=24;//GetTagFloat("wincctag2"); //写wincc的变量实时值到格A2中

pExcel->ActiveWorkbook->SaveAs(FileName);

pExcel->Workbooks->Close();

pExcel->Quit();

__object_delete(pExcel);
雄关漫道真如铁,而今迈步从头越!
有谁共鸣
侠圣

经验值:3112
发帖数:2153
精华帖:21
    2006-04-07 14:27:01
精华帖  主题:回复:wincc5.1怎么通过C脚本实时向excel传送数据 并保存以当天日期为名?
打印的程序也出来了!
小弟献丑啦:
拷贝放到按钮下就可以了!

#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{

#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[20] = "";

SYSTEMTIME sysTime;

__object* pExcel = NULL;

HWND handle=NULL;

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

GetLocalTime(&sysTime);

sprintf(FileName,"d:\\%d-%d-%d.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay);

pExcel = __object_create("Excel.Application.9"); //9表示用的是office 2000

pExcel->Visible = 1;

pExcel->Workbooks ->Open ("d:\\book1.xls");

pExcel->Worksheets("sheet1")->Range("A1")->Value=12;//GetTagFloat("wincctag1"); //写wincc的变量实时值到格A1中

pExcel->Worksheets("sheet1")->Range("A2")->Value=24;//GetTagFloat("wincctag2"); //写wincc的变量实时值到格A2中

pExcel->ActiveWorkbook->SaveAs(FileName);

pExcel->Workbooks->Close();

pExcel->Quit();

__object_delete(pExcel);

ShellExecuteA(handle, "print", FileName, NULL, "D:\\",SW_SHOWMAXIMIZED);

}
雄关漫道真如铁,而今迈步从头越!
shine
至圣

经验值:19820
发帖数:8803
精华帖:39
    2006-04-12 20:46:58
精华帖  主题:回复:wincc5.1怎么通过C脚本实时向excel传送数据 并保存以当天日期为名?
在“pExcel->ActiveWorkbook->SaveAs(FileName);”后再加一句
pExcel->ActiveWorkbook->PrintPreview();就可以预览,

pExcel->ActiveWorkbook->PrintOut();直接打印
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。