一个有关Office、Automation、VBA的技术怪问题,真的很难!喜欢挑战的人方可进来!

lpt 2002-06-11 10:20:16
背景
我做了一个OA系统,里面用到了Office处理,能在客户端的浏览器上直接编辑服务器上数据库里文件(指txt,word,excel,...),这个都己经做完了

现在是要做一个OA打印,我现在把数据文件和EXCEL模板文件都下载到了客户端,然后再用我的程序打开这个EXCLE文件,这个EXCEL的VBA会自动读取数据文件(CSV)。现在问题出来了,这种方法在WIN2K、OFFICE2K里可以通过,在(WIN2K、OFFICE97)(WIN98、OFFICE2K)都会出现打不开EXCEL文件的错误,我在VC的打开方试如下:
继承COleDocObjectItem类,在构造函数里用
USES_CONVERSION;

// get storage for the object via virtual function call
m_dwItemNumber = GetNewItemNumber();
GetItemStorage();

// add AfxOleInit(); in CXOfficeApp::InitInstance
AfxOleGetMessageFilter()->EnableNotRespondingDialog(FALSE);

// attempt to create the object
LPOLECLIENTSITE lpClientSite = GetClientSite();
SCODE sc = ::OleCreateFromFile(CLSID_NULL,
T2COLE(filpszPath),// EXCEL文件路径
IID_IUnknown,
OLERENDER_DRAW,
NULL,
lpClientSite,
m_lpStorage,
(LPVOID*)&m_lpObject);

return m_bCreate = FinishCreate(sc) == TRUE;
这样创建OLE对象的

VBA如下:
Workbooks.Open FileName:=sCsvPath // 打开数据文件
...
...
'关闭数据文件
Windows(C_CSV_FILENAME).Activate
ActiveWindow.Close

在VBA里只要打开数据文件,(Office97)就会出错,在Win98里是打的开但读不出数据

说得太多可能牛人们都有点烦了吧,请给一点耐心,谢谢
我的EMAIL是 lptsnow@sohu.com 有什么问题请和我联系,让我们共同进步
...全文
33 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lpt 2002-06-12
  • 打赏
  • 举报
回复
请大家讨论一下
lpt 2002-06-11
  • 打赏
  • 举报
回复
请关注
nullhue 2002-06-11
  • 打赏
  • 举报
回复
你看看 是否使用了WIN2K才支持的API
lpt 2002-06-11
  • 打赏
  • 举报
回复
连一个支持的人都没有!

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧