| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 450 人关注过本帖
标题:谁来修改我的程序
只看楼主 加入收藏
hjq3324756
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-6-6
收藏
 问题点数:0 回复次数:0 
谁来修改我的程序

我的程序需要实现的目标:每秒一次向EXCEL动态追加一行数据(在这个程序中我的数据是用固定的"test"字符串来代替,实际情况我会需要从文本框读取数据,所以这里只要实现每秒追加一行"test"就行了)
看了很多如何操作EXCEL的文章,东拼西凑总算调试通过,不过程序的实现是用 for(int k=1;k<=5000;k++) 和 _sleep(1000);这种很弱智的方法实现的,谁能帮我用类似 SetTimer(1,1000,NULL);周期性触发某事件的方法改写一下程序,晚辈在此不甚感激!
程序添加了EXCEL类(EXCEL2003):
选择Menu->View->ClassWizade,打开ClassWizade窗口,选择Add Class->From a type library,选择C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE,选择_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range,加入新类,增加头文件#include "comdef.h" #include "Excel.h"
在BOOL CTEXTApp::InitInstance()中,dlg.DoModal();之前增加代码:
if (CoInitialize(NULL)!=0)
{
AfxMessageBox("初始化COM支持库失败!");
exit(1);
}
在return FALSE; 语句前,加入:
CoUninitialize();
然后新建一个按钮,加入下面的代码。

void CTEXTDlg::OnExceltest()
{
// TODO: Add your control notification handler code here


CString strPath = "D:\\test.xls";
COleVariant
covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
_Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge;

//创建Excel 2000服务器(启动Excel)
if (!ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("Create Excel service failure!");
return;
}
ExcelApp.SetVisible(false);
//利用模板文件建立新文档
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook = wbsMyBooks.Add(covOptional);

for(int k=1;k<=5000;k++){

//得到Worksheets
wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);

//得到sheet1
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);

//得到全部Cells,此时,rgMyRge是cells的集合
rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);
//设置1行1列的单元的值
rgMyRge.SetItem(_variant_t((long)k),_variant_t((long)1),_variant_t("test"));
rgMyRge.SetItem(_variant_t((long)k),_variant_t((long)2),_variant_t("test"));
rgMyRge.SetItem(_variant_t((long)k),_variant_t((long)3),_variant_t("test"));
rgMyRge.SetItem(_variant_t((long)k),_variant_t((long)4),_variant_t("test"));

wbMyBook.SaveCopyAs(_variant_t(strPath));
ExcelApp.SetVisible(true);

_sleep(1000);
}
}

搜索更多相关主题的帖子: 目标 文本框 周期性 字符串 
2007-07-02 12:49
快速回复:谁来修改我的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026480 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved