找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2586|回复: 16

[求助]:能否用mdl将文本格式的数据写成execl格式的文件

[复制链接]
发表于 2004-10-18 15:27:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本来想写成文本格式在导入execl  不知道有没有直接写的方法
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-10-18 16:10:05 | 显示全部楼层
mdl直接做,做不到吧!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-18 16:40:44 | 显示全部楼层
写csv类型的文件啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-18 17:07:32 | 显示全部楼层
可以做到,用mdlWin32_DdeXXX类函数!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-18 17:15:52 | 显示全部楼层
感谢ms迷 可是有没有例子呀
v8里的例子运行后不知道在做什么
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-19 08:26:32 | 显示全部楼层
V8中的例子ddeclkcn是利用DDE技术从运行的CLOCK.EXE程序中取“当前时间”。
下面是我针对您的向Excel中写数据编写的一个小例子(花了我一整个晚上哟!)
#include <msw32dde.fdf>                    /* For MDL-DDEML prototypes.    */
#include <wnclpext.h>
/*----------------------------------------------+
|      wrt2ExcelByDDE                |
+----------------------------------------------*/
Private void wrt2ExcelByDDE (void)
{
   int            rtn;
   long           idInst = 0;            /* Instance id for MDL-DDEML    */
   HSZ           hszService;            /*   Service string                    */
   HSZ           hszTopic;            /*   Topic   string                    */
   HSZ           hszItem;               /*   Item    string                    */
   HCONV           hConv;                    /* Handle to the conversation.  */
   char     transStr[50];
   
   mdlWin32_DdeInitialize (&idInst, NULL, APPCLASS_STANDARD|APPCMD_CLIENTONLY, 0L);
   hszService = mdlWin32_DdeCreateStringHandle (idInst, "EXCEL", 0);
   hszTopic   = mdlWin32_DdeCreateStringHandle (idInst, "Sheet1",  0);
   hConv = mdlWin32_DdeConnect (idInst, hszService, hszTopic, NULL);
   mdlWin32_DdeFreeStringHandle (idInst, hszService);
   mdlWin32_DdeFreeStringHandle (idInst, hszTopic);

   strcpy (transStr, "Test");
   hszItem    = mdlWin32_DdeCreateStringHandle (idInst, "R1C1",  0);
   mdlWin32_DdeClientTransaction ((LPBYTE)transStr, 4, hConv, hszItem, CF_TEXT, XTYP_POKE, TIMEOUT_ASYNC, NULL);
   mdlWin32_DdeFreeStringHandle (idInst, hszItem);

   strcpy (transStr, "Test");
   hszItem    = mdlWin32_DdeCreateStringHandle (idInst, "R2C2",  0);
   mdlWin32_DdeClientTransaction ((LPBYTE)transStr, 4, hConv, hszItem, CF_TEXT, XTYP_POKE, TIMEOUT_ASYNC, NULL);
   mdlWin32_DdeFreeStringHandle (idInst, hszItem);
}
该例子向Excel的第一行第一列和第二行第二列分别写入了Test字样。
DDE技术是一项非常复杂的技术,其中涉及大量的术语,要想深入了解它请看Microsoft的MSDN。
其实完成你的任务的最好方法应该是采用Automation技术,即以前叫做OLE Automation的。但可惜MDL没有直接支持的方法。
还需要注意的是:要运行通我的例子,需要先启动Excel程序,把它作为服务器,我们的程序作为客户机。当然,你可以用MDL的mdlExternal_startProgram实现自动启动Excel。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-19 09:53:47 | 显示全部楼层
程序调试成功 非常感谢ms迷
但是mdlExternal_startProgram还没有执行完就已经执行写入的wrt2ExcelByDDE()函数了
应该怎么让他等待一下??
还有输入的没有保存 怎么保存 在自动关闭execl???
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-19 10:41:32 | 显示全部楼层
1、如果你用的是MSV8,可以用mdlExternal_extStartProgram来控制Excel启动后再返回,如果用的是MSJ就比较麻烦,需要调用mdlExternal_wait。
2、关闭Excel仍然可以用DDE,不是发送XTYP_POKE而是发送XTYP_EXECUTE即可,当然详细的细节还得靠自己到MSDN里去查找!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-19 13:25:35 | 显示全部楼层
我用的是v8 mdlExternal_extStartProgram没有其他参数了 怎么等待execl启动在返回呢
mdlExternal_wait 怎么使用拿 我试试了 还是不会用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-19 16:51:48 | 显示全部楼层
把waitForCompletion设为TRUE就行了呀!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-11 10:37:26 | 显示全部楼层
ms迷 不对呀 使用mdlExternal_extStartProgram打开exec
怎么没有用exec 打开一个特定文件的参数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-11 11:03:31 | 显示全部楼层
char**  argumentsP  不就是吗?!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-11 11:18:14 | 显示全部楼层
偶觉得还是用vc6 或者c++.net做dll 省事儿些。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-11 13:51:14 | 显示全部楼层
我刚才试试了参数 好像没有起作用
在问一下是不是可以使用mdlExternal_terminateProgram 来关闭打开的exec
vc6里面怎么在关闭exec
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-11 13:54:40 | 显示全部楼层
vc里直接用excel 的object就可以吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-9 11:06 , Processed in 0.387055 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表