mfc读取word文件内容,包括内容合适,如字体、字号等? 具体问题标题所示。我想读取word文档内容包括其具体格式,但是没找到好的可行方法,哪位大侠指教一二 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 微软没有公布office的标准格式吗? 没有ms公布office的文件格式 注意:2007的office中,有的类名改为了后面加0,如CRange0 CDocument0, 一些函数名称也改了,格式修改如getText改为了get_Text(),读取word 文档:记得修改CDocuments , CDocument0 等的头文件中的如下://另外记得加上#pragma once#pragma once#import "K:\\Program Files XXX\\Microsoft Office\\Office XX\\MSWORD.OLB" no_namespace raw_interfaces_only \ rename("FindText","_FindText") \ rename("Rectangle","_Rectangle") \ rename("ExitWindows","_ExitWindows")如上我说的,导入typelib后,添加Application Document.. 等类。如下为一个snippet#include "CApplication.h"#include "CDocument0.h"#include "CDocuments.h" CApplication oWord; CDocuments oDocs; CDocument0 oDoc;void CVCreadwriteRTFDlg::OnBnClickedButton1() { // 变量的声明 COleVariant vTrue((short)TRUE), vFalse((short)FALSE), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); CApplication oWordApp ; CSelection oSel ; CDocuments oDocs ; CDocument0 oDoc ; CParagraphs paragraphs ; CStringArray aryText; long paCounst; int lc ; // 首先建立一个word实例对象 if (!oWordApp.CreateDispatch(TEXT("Word.Application")) ){ AfxMessageBox( TEXT( "CreateDispatch failed." ) , MB_OK ¦MB_SETFOREGROUND); return; // 一定要返回,否则程序崩溃 } // 显示此对象文件 ,您也可以不调用此句,不显示对象文件 oWordApp.Set_Visible(TRUE); // 创建文档 oDocs = oWordApp.get_Documents(); // 打开一个新文档,将e:\\BuildJobEdit.rtf文件的内容添加到新文档中 CComVariant tpl(_T("e:\\BuildJobEdit.rtf")), NewTemplate(false), DocType(0), Visble; oDoc = oDocs.Add(&tpl,&NewTemplate,&DocType,&Visble); // 选中文档中的所有内容 oSel = oWordApp.get_Selection(); oSel.WholeStory();// 此句必须有,否则后续代码无效。 // 得到所有段 paragraphs = oSel.get_Paragraphs(); paCounst = paragraphs.get_Count(); // 将所有段中的每一段都存在数组里 for( lc = 1 ; lc < paCounst+1 ; lc++ ){ // 得到一段 CParagraph paragraph; paragraph = paragraphs.Item( (long)lc ); // 得到一段的文本 CRange range = paragraph.get_Range(); CString strRangeText = range.get_Text(); CFont font = range.get_Font(); // 设置文本的字体大小与颜色 //font.put_Color( RGB(0,255,0) ); //font.put_Size( 12 ); // AfxMessageBox( strRangeText ); // 保存到数组里 aryText.Add( strRangeText ); //释放对象 paragraph.ReleaseDispatch(); } word提供了一组COM接口可以以编程的方式访问文档内容 WritePrivateProfileString需要经过几次ANSI和UNICODE转化过程? 合同期满,离职需要办些什么手续? 谁帮忙解释下CADORecordBinding 这个类! CString会自动注销吗? 控件有关联,如何在改变某个控件以后,更新其他关联控件? 关于在com中定义变量 winzip在ie客房户区的右键菜单是如何实现的? 极easy的VC问题:ToolBar的停靠。。 一个送分提:如何在程序中重新调用OnInitDialog()函数? 对话框如何嵌入到视图客户区中? 有关行人检测代码的运行问题 如何在程序运行出界面后在一个过程中一直检测网络是否连接
没有ms公布office的文件格式
rename("FindText","_FindText") \
rename("Rectangle","_Rectangle") \
rename("ExitWindows","_ExitWindows")如上我说的,导入typelib后,添加Application Document.. 等类。如下为一个snippet#include "CApplication.h"
#include "CDocument0.h"
#include "CDocuments.h" CApplication oWord;
CDocuments oDocs;
CDocument0 oDoc;void CVCreadwriteRTFDlg::OnBnClickedButton1()
{
// 变量的声明
COleVariant vTrue((short)TRUE),
vFalse((short)FALSE),
vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); CApplication oWordApp ;
CSelection oSel ;
CDocuments oDocs ;
CDocument0 oDoc ;
CParagraphs paragraphs ; CStringArray aryText; long paCounst;
int lc ;
// 首先建立一个word实例对象
if (!oWordApp.CreateDispatch(TEXT("Word.Application")) ){ AfxMessageBox( TEXT( "CreateDispatch failed." ) , MB_OK ¦MB_SETFOREGROUND);
return; // 一定要返回,否则程序崩溃
} // 显示此对象文件 ,您也可以不调用此句,不显示对象文件
oWordApp.Set_Visible(TRUE); // 创建文档
oDocs = oWordApp.get_Documents(); // 打开一个新文档,将e:\\BuildJobEdit.rtf文件的内容添加到新文档中
CComVariant tpl(_T("e:\\BuildJobEdit.rtf")), NewTemplate(false), DocType(0), Visble;
oDoc = oDocs.Add(&tpl,&NewTemplate,&DocType,&Visble);
// 选中文档中的所有内容
oSel = oWordApp.get_Selection();
oSel.WholeStory();// 此句必须有,否则后续代码无效。 // 得到所有段
paragraphs = oSel.get_Paragraphs();
paCounst = paragraphs.get_Count();
// 将所有段中的每一段都存在数组里
for( lc = 1 ; lc < paCounst+1 ; lc++ ){ // 得到一段
CParagraph paragraph;
paragraph = paragraphs.Item( (long)lc ); // 得到一段的文本
CRange range = paragraph.get_Range();
CString strRangeText = range.get_Text(); CFont font = range.get_Font(); // 设置文本的字体大小与颜色
//font.put_Color( RGB(0,255,0) );
//font.put_Size( 12 );
// AfxMessageBox( strRangeText ); // 保存到数组里
aryText.Add( strRangeText ); //释放对象
paragraph.ReleaseDispatch(); }