用VC++6.0如何打开、编辑、保存、管理Word文件?

yuhuahong 2003-10-21 11:32:18
用VC++6.0如何打开一个Word文件?请指教,不胜感激!
...全文
352 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltbcn 2003-10-31
  • 打赏
  • 举报
回复
mfkzj 信誉 的方法挺好的!
请教各个变量的具体含义以及在VC中向Word输入数据时具体方法??
谢谢!!!
smallcrocodile 2003-10-21
  • 打赏
  • 举报
回复
ShellExecute就可以,不过会出问题
mfkzj 2003-10-21
  • 打赏
  • 举报
回复
这个你可以使用VC调用标准窗口阿
char Filter[]="图象文件|*.bmp;*.jpg;*.pcx||";
CFileDialog dlgOpen(TRUE,0,0,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,(LPCTSTR)Filter,NULL);
// Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";
if(dlgOpen.DoModal()==IDOK)
{
m_PhotoPath=dlgOpen.GetPathName();
m_PhotoName=dlgOpen.GetFileName();//取得要分割的文件名(不包含路径、扩展名)
}
就可以弹出一个“打开”对话框
yuhuahong 2003-10-21
  • 打赏
  • 举报
回复
我现在已经知道用ShellExecute("Open")来实现打开一个文件,但是我想实现就象Word里“打开”按钮所实现的弹出一个“打开”对话框,可以选择?
mfkzj 2003-10-21
  • 打赏
  • 举报
回复
使用WORD提供的COM接口就可以解决
这是我以前写的一个每天自动写工作日志的程序 呵呵!你看看
const CLSID CLSID_ApplicationPtr =
{0x000209FF,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}};
const IID IID_IApplicationPtr =
{0x00020970,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}};
VOID WriteMsgToLogFile(PCHAR pbMessage);

#import "C:\Program Files\Microsoft Office\Office\MSO9.DLL"
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\Program Files\Microsoft Office\Office\MSWORD9.OLB" \
rename("ExitWindows","_ExitWindows")
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HRESULT hr;
CString FileName,LoadFile,SaveFile,SaveFileName,Temp1;
CHAR FilePath[255];

VARIANT Temp;
COleVariant TEMP2;
CTime NowTime;
hr=CoInitialize(NULL);

Word::_ApplicationPtr MyOffice("Word.Application.9");
::GetCurrentDirectory(255,FilePath);
FileName.Format("%s",FilePath);
LoadFile=FileName+"\\开发人员工作日志模板.dot";
TEMP2=(COleVariant)LoadFile;
Temp=TEMP2.Detach();
if (MyOffice) {
// hr=MyOffice->Documents->Open(&Temp);
hr=MyOffice->Documents->Add(&Temp);
// hr=MyOffice->ActiveDocument->Activate();
// hr=MyOffice->ActiveWindow->put_Visible(VARIANT_BOOL(TRUE)); //显示word窗口
if(FAILED(hr))
{
::AfxMessageBox("文件打开显示错误");
MyOffice->Quit();
}
NowTime=CTime::GetCurrentTime();
Temp1=NowTime.Format("%m月%d") ;
SaveFileName=Temp1+"日工作日志.doc";
SaveFile=FileName+"\\"+SaveFileName;
TEMP2.Clear();
TEMP2=(COleVariant)SaveFile;
Temp=TEMP2.Detach();
TEMP2.Clear();
hr=MyOffice->ActiveDocument->SaveAs(&Temp);
// hr=MyOffice->Documents->Save(&Temp); //错误原因:保存文件如果是Documents是全保存 所以应该使用ActiveDocument
if(FAILED(hr))
{
::AfxMessageBox("文件保存失败");
MyOffice->ActiveWindow->put_Visible(VARIANT_BOOL(TRUE));
}
::AfxMessageBox("文件保存成功!");
MyOffice->Quit();
}
// MyOffice->Quit();
// MyOffice->Release();
return 0;
}

16,471

社区成员

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

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

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