QQ登录

只需一步,快速开始

如何用C脚本后台操作EXCEL文件?

[ 复制链接 ]
如何用C脚本后台操作EXCEL文件?

打算用EXCEL表格做个计算和参数配置文件,因为是用来存储参数的,所以文件名是同一个文件名,每次关闭的时候都要跳出是否保存的对话框。有有什么好办法,不跳出这个对话框?修改和读取完参数后最好也不要有什么进程存在任务管理器里面。

用C脚本


---------关闭前先save一下就好了。


--------不要用同一个文件名.


---------关闭之前先进行保存,不就不弹出对话框了

每次打开的时候也先检测有没有Excel打开,有的话,把所有的excel进程结束了




-是的,已经不弹出了,以前也有保存命令的,把表格设置为共享看了一下,大概写完变量需要4分钟左右,是600*30=18000个新变量写入和18000个变量挨个移位。时间比较长,要是在写和移位变量值过程打开表格或者运行其他EXCEL文件就会出现EXCEL这个写进程死了,数据写到不确定位置就停了。现在采取的措施是修改注册表,允许EXCEL程序同时打开多个文件。目前好像没有问题。再看看。

谢谢楼上几位高手关注。

还有2个问题:

1:C脚本怎么样关闭其他EXCEL 进程?为了以防万一,打开前统一先关闭其他不确定文件名的EXCEL文件。?

2:如何在C脚本里面实现把数据EXCEl文件存入项目相对路径下,网上看了..\\或者.\\几种不行?



--------1、用类似于GetObject的函数建一个Excel对象,再牧举它的Workbook,发现有同名的,将其关闭。网上能找到。

2、得到项目文件夹,可以用DMGetRuntimeProject函数:

char MyProjectPath[_MAX_PATH + 1];

char * psz=NULL;

CMN_ERROR Error;

BOOL bRet=FALSE;


  bRet=DMGetRuntimeProject(MyProjectPath,_MAX_PATH+1,&Error);

  if (bRet==FALSE)

  {

     return ;

  }


  psz=strrchr(MyProjectPath,'\\');

  if (psz==NULL)

  {

     return ;

  }


  *(psz+1)=0;


---------我感觉,操作Excel,还是用VBS比较好。


---------程序启动时候所有脚本都要运行一次,虽然都有触发条件,但并不满足条件,结果这个延时写表格程序4分钟才写完,影响了主界面程序运行显示。迟滞。



-------建一个内部Tag,默认值为0,FALSE。

程序正常启动后,置1,TRUE。且一直为1。

然后在你需要的全局动作中,代码最前面加个判断,读取这个Tag值,如果为0则直接返回。



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索