具體問題標題所示。
我想讀取word檔案內容包括其具體格式,但是沒找到好的可行方法,哪位大俠指教一二
uj5u.com熱心網友回復:
研究勞拉檔案格式uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
微軟沒有公布office的標準格式嗎?uj5u.com熱心網友回復:
沒有ms公布office的檔案格式
uj5u.com熱心網友回復:
注意: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();
}
uj5u.com熱心網友回復:
word提供了一組COM介面可以以編程的方式訪問檔案內容轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/147905.html
下一篇:opencv角點資訊取用
