文件管理 · 2022年7月26日

vc读取word内容|请高手帮忙解决一下如何在VC中读取word文件的内容并进行处理

❶ 用VC怎样取某word文件里的第X段内容

三种方法:一是直接读取.doc文档,可以将所有的文本读入到字符串中在做相关处理:C# code?using System.IO;string temp = System.IO.File.OpenText(@“D:\word.doc”).ReadToEnd();//读取doc文档二是通过调用.NET对于Office的COM组件来做:C# code?using Microsoft.Office.Interop.Word;Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();//打开word程序Microsoft.Office.Interop.Word.Document doc = null;//实例化一个新的word文档object unknow = Type.Missing;app.Visible = true;doc = app.Documents.Open(ref fileName,ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,ref unknow,ref unknow);string temp = doc.Content.Text.Trim();//将全篇内容存入字符串中,也可以调用别的方法,具体可以查询MSDN…三是将Word转为XML,可以根据要求提取内容,包括标题,目录等等~~C# code?using System.XML;XmlDocument doc = new XmlDocument();doc.Load(filePath); //载入XML文档XmlElement root = doc.DocumentElement; //定义载入XML的根节点foreach(XmlNode xn1 in root.ChildNodes) //对于根节点以外的子节点做循环,以下同理{//对元素处理~~~}

❷ 怎么用VC读取Word文本框中的内容

vc6测试成功,写的有点乱你自己好好看看吧._Application app; Documents docs; _Document doc; Tables WordTables; Table WordTable; Cell WordCell; Range WordRange; Columns WordCols; Rows WordRows; if(!app.CreateDispatch("Word.Application")) { MessageBox("创建Word服务失败!",_T("提示"),MB_ICONERROR); return; } docs.AttachDispatch(app.GetDocuments()); app.SetVisible(true);//打开文件 IDispatch *dispatch=docs.Open(&_variant_t(_T("d:\\test.doc")),&vtMissing,&vtMissing,&vtMissing, &vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing, &vtMissing,&vtMissing,&vtMissing,&vtMissing); if(dispatch) { doc.AttachDispatch(dispatch); } else {//出错了 CString szErr=""; szErr.Format("打开文件出错,请查看文件是否存在!"); ::AfxMessageBox(szErr); //退出程序,释放对象 app.Quit(&vtMissing,&vtMissing,&vtMissing); docs.ReleaseDispatch(); app.ReleaseDispatch(); return; } dispatch=doc.GetTables(); if(dispatch) { WordTables.AttachDispatch(dispatch); } else {//出错了 CString szErr=""; szErr.Format("取得表格集合出错!"); ::AfxMessageBox(szErr); //退出程序,释放对象 app.Quit(&vtMissing,&vtMissing,&vtMissing); docs.ReleaseDispatch(); app.ReleaseDispatch(); doc.ReleaseDispatch(); return; } int nTableCount=WordTables.GetCount(); if(nTableCount>0) { for(int i=1;i<=nTableCount;i++) { WordTable.AttachDispatch(WordTables.Item(i)); WordCols.AttachDispatch(WordTable.GetColumns()); WordRows.AttachDispatch(WordTable.GetRows()); int nCols=WordCols.GetCount(); int nRows=WordRows.GetCount(); for(int j=1;j<=nRows;j++) { for(int k=1;k<=nCols;k++) { dispatch=WordTable.Cell(j,k); WordRange.AttachDispatch(dispatch); CString szText=WordRange.GetText(); this->MessageBox(szText); } } } } app.Quit(&vtMissing,&vtMissing,&vtMissing); doc.ReleaseDispatch(); docs.ReleaseDispatch(); app.ReleaseDispatch();

❸ VC++怎样读取文档中数字跟汉字

你的文档指的是TXT还是word,如果是文本文件(TXT)的话就很简单,如果是word那就要用到ole和com了,TXT你可以用输入输出流类,ifstreamifstreamfp("d:\\data.txt",ifstream::in);inta;fp>>a;这样就可以得到数字了,注意此读入是以文件中的空格和回车为结束符的。比如1231246546你就可以通过循环得到两个数,而不是一个,如果遇到中文它会跳过中文去后边的数字,如果你要去文字,你可以定义CStringcs变量来取得字符,fp>>cs;记得给分啊,!哈哈!!!如果是word的话,你可以去网上搜搜,有很详细的,!!

❹ 怎样用vc++读取word文档中的内容

参考一下http://www.vckbase.com/document/viewdoc/?id=1174

❺ 请高手帮忙解决一下,如何在VC中读取word文件的内容并进行处理。

vc6测试成功,写的有点乱你自己好好看看吧._Application app; Documents docs; _Document doc; Tables WordTables; Table WordTable; Cell WordCell; Range WordRange; Columns WordCols; Rows WordRows; if(!app.CreateDispatch("Word.Application")) { MessageBox("创建Word服务失败!",_T("提示"),MB_ICONERROR); return; } docs.AttachDispatch(app.GetDocuments()); app.SetVisible(true);//打开文件 IDispatch *dispatch=docs.Open(&_variant_t(_T("d:\\test.doc")),&vtMissing,&vtMissing,&vtMissing, &vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing, &vtMissing,&vtMissing,&vtMissing,&vtMissing); if(dispatch) { doc.AttachDispatch(dispatch); } else {//出错了 CString szErr=""; szErr.Format("打开文件出错,请查看文件是否存在!"); ::AfxMessageBox(szErr); //退出程序,释放对象 app.Quit(&vtMissing,&vtMissing,&vtMissing); docs.ReleaseDispatch(); app.ReleaseDispatch(); return; } dispatch=doc.GetTables(); if(dispatch) { WordTables.AttachDispatch(dispatch); } else {//出错了 CString szErr=""; szErr.Format("取得表格集合出错!"); ::AfxMessageBox(szErr); //退出程序,释放对象 app.Quit(&vtMissing,&vtMissing,&vtMissing); docs.ReleaseDispatch(); app.ReleaseDispatch(); doc.ReleaseDispatch(); return; } int nTableCount=WordTables.GetCount(); if(nTableCount>0) { for(int i=1;i<=nTableCount;i++) { WordTable.AttachDispatch(WordTables.Item(i)); WordCols.AttachDispatch(WordTable.GetColumns()); WordRows.AttachDispatch(WordTable.GetRows()); int nCols=WordCols.GetCount(); int nRows=WordRows.GetCount(); for(int j=1;j<=nRows;j++) { for(int k=1;k<=nCols;k++) { dispatch=WordTable.Cell(j,k); WordRange.AttachDispatch(dispatch); CString szText=WordRange.GetText(); this->MessageBox(szText); } } } } app.Quit(&vtMissing,&vtMissing,&vtMissing); doc.ReleaseDispatch(); docs.ReleaseDispatch(); app.ReleaseDispatch();

❻ 关于如何用VC读取word表格的问题

我现在是在做利用VC 实现WORD表格与ACCESS数据库相互转换的系统 ,在读取WORD表格数据,并转换到ACCES出了问题,怎么样读取WORD文档的表格数据?我只能写出读取WORD文本的程序 但是肯定不行的 请大家帮忙改正下 我需要读取表格数据,对应到ACCESS里面 我有 m_strId, m_strName, m_nScorevoid CDb005Dlg::OnButtonRead() {// TODO: Add your control notification handler code hereCLSID clsid;HRESULT hr;hr = CLSIDFromProgID(L"Word.Application",&clsid);if(FAILED(hr)){AfxMessageBox(_T("您没有安装OFFICE"));return;}IUnknown *pUnknown=NULL;IDispatch *pDispatch=NULL;_Application app=NULL;hr = GetActiveObject(clsid, NULL, &pUnknown);if(FAILED(hr)){AfxMessageBox(_T("没有正在运行中的MS WORD"));return;}hr = pUnknown->QueryInterface(IID_IDispatch, (LPVOID *)&app);if(FAILED(hr)){ pUnknown->Release();AfxMessageBox(_T("没有取得Application"));return;}pUnknown->Release();pUnknown = NULL;Selection Sel = app.GetSelection();if(!Sel){ Sel.ReleaseDispatch();AfxMessageBox(_T("没有正在编辑的MS WORD"));return;}Sel.WholeStory(); //全部选择CString str = Sel.GetText(); //取得文本m_strReada = str; //显示到编辑窗中UpdateData(FALSE);Sel.ReleaseDispatch();app.ReleaseDispatch();///////if(m_nOperate == 1) //增加{UpdateData(TRUE);if(m_strId.IsEmpty()){AfxMessageBox(_T("学生学号不能为空."));return;}if(m_strName.IsEmpty()){AfxMessageBox(_T("学生姓名不能为空."));return;}CString strSql;strSql.Format(_T("Insert into StudentInfo values('%s','%s',%d)"), m_strId, m_strName, m_nScore);try{m_pConnection->Execute(_bstr_t(strSql), 0, adCmdText);}catch(_com_error e){AfxMessageBox(_T("增加记录失败!"));}AfxMessageBox(_T("增加记录成功!"));FreshList();}

❼ c++如何读取word

基本步骤(1)创建)一个 MFC 的程序工程。

注意:在VC中对WORD进行操作需要在MFC AppWizard – Step 2 of4中的Automaiton选项上打上勾。

(2)Ctrl+W 执行 ClassWizard(本文按照 VC6 操作,示例程序是在VC6 下编写测试的)。

(3)Add Class…From a type Library… 在 Office目录中,找到想使用的类型库。(我使用的是 Office2003,其Word 的类型库文件,保存在 E:ProgramFilesMicrosoft OfficeOffice12MSWOR.OLB)。

(4)选择类型库文件后,在弹出的对话窗中继续选择要添加的类。具体选择什么类,要看你将来在程序中打算调用什么功能。当然,也可以不用考虑这么多,用鼠标和Shift键配合,全部选择也可以。

(5)初始化COM。方法一,找到App的InitInstance()函数,在其中添加AfxOleInit()函数的调用;方法二,在需要调用COM功能的地方 CoInitialize(NULL),调用完毕后CoUninitialize()。

(6)在你需要调用 Office 功能函数的 cpp 文件中#include<atlbase.h> //为了方便操作 VARIANT 类型变量,使用 CComVariant 模板类#include "文件名.h" //具体的头文件名,是由装载类型库的文件名决定的,如MSWORD。

示例程序:

//word应用程序_Applicationapp;//初始化连接app.CreateDispatch("word.Application");Documentsdoc;CComVarianta(_T(strWord)),b(false),c(0),d(true),aa(0),bb(1);_Documentdoc1;doc.AttachDispatch(app.GetDocuments());doc1.AttachDispatch(doc.Add(&a,&b,&c,&d));Rangerange;//求出文档的所选区域range=doc1.GetContent();//取出文件内容str=range.GetText();m_richedit.SetWindowText(str);//关闭app.Quit(&b,&c,&c);//释放环境app.ReleaseDispatch();

❽ 如何用vc读取word页眉页脚的内容

您好!首先创建宏,然后设置vc与宏之间的对应关系即可;

❾ 如何用c++读取word文档

基本步骤(1)创建)一个 MFC 的程序工程。

注意:在VC中对WORD进行操作需要在MFC AppWizard – Step 2 of4中的Automaiton选项上打上勾。

(2)Ctrl+W 执行 ClassWizard(本文按照 VC6 操作,示例程序是在VC6 下编写测试的)。

(3)Add Class…From a type Library… 在 Office目录中,找到想使用的类型库。(我使用的是 Office2003,其Word 的类型库文件,保存在 E:ProgramFilesMicrosoft OfficeOffice12MSWOR.OLB)。

(4)选择类型库文件后,在弹出的对话窗中继续选择要添加的类。具体选择什么类,要看你将来在程序中打算调用什么功能。当然,也可以不用考虑这么多,用鼠标和Shift键配合,全部选择也可以。

(5)初始化COM。方法一,找到App的InitInstance()函数,在其中添加AfxOleInit()函数的调用;方法二,在需要调用COM功能的地方 CoInitialize(NULL),调用完毕后CoUninitialize()。

(6)在你需要调用 Office 功能函数的 cpp 文件中#include<atlbase.h> //为了方便操作 VARIANT 类型变量,使用 CComVariant 模板类#include "文件名.h" //具体的头文件名,是由装载类型库的文件名决定的,如MSWORD。

示例程序:

//word应用程序_Applicationapp;//初始化连接app.CreateDispatch("word.Application");Documentsdoc;CComVarianta(_T(strWord)),b(false),c(0),d(true),aa(0),bb(1);_Documentdoc1;doc.AttachDispatch(app.GetDocuments());doc1.AttachDispatch(doc.Add(&a,&b,&c,&d));Rangerange;//求出文档的所选区域range=doc1.GetContent();//取出文件内容str=range.GetText();m_richedit.SetWindowText(str);//关闭app.Quit(&b,&c,&c);//释放环境app.ReleaseDispatch();

❿ vc读取word

你看看书,文件操作FILE *fp;fp=fopen(C盘的文件,r)然后是读文件,可以用几个函数是啥来着,fgetc是读一个字符,fgets读一行fscanf格式化读不看书谁记得住……总之随便用一个读函数都能读出来最后fclose(fp)