一、如何用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:\ProgramFiles\Microsoft Office\Office12\MSWOR.OLB)。
(4)选择类型库文件后,在弹出的对话窗中继续选择要添加的类。具体选择什么类,要看你将来在程序中打算调用什么功能。
当然,也可以不用考虑这么多,用鼠标和Shift键配合,全部选择也可以。 (5)初始化COM。
方法一,找到App的InitInstance()函数,在其中添加AfxOleInit()函数的调用;方法二,在需要调用COM功能的地方 CoInitialize(NULL),调用完毕后CoUninitialize()。 (6)在你需要调用 Office 功能函数的 cpp 文件中 #include //为了方便操作 VARIANT 类型变量,使用 CComVariant 模板类 #include "文件名.h" //具体的头文件名,是由装载类型库的文件名决定的,如MSWORD。
示例程序: //word应用程序 _Application app; //初始化连接 app.CreateDispatch("word.Application"); Documents doc; CComVarianta(_T(strWord)),b(false),c(0),d(true),aa(0),bb(1); _Document doc1; doc.AttachDispatch(app.GetDocuments()); doc1.AttachDispatch(doc.Add(&a,&b,&c,&d)); Range range; //求出文档的所选区域 range=doc1.GetContent();//取出文件内容 str=range.GetText(); m_richedit.SetWindowText(str); //关闭 app.Quit(&b,&c,&c); //释放环境 app.ReleaseDispatch();。
二、如何用c++读取word文档
基本步骤
(1)创建)一个 MFC 的程序工程。
注意:在VC中对WORD进行操作需要在MFC AppWizard - Step 2 of
4中的Automaiton选项上打上勾。
(2)Ctrl+W 执行 ClassWizard(本文按照 VC6 操作,示例程序是在VC6 下编写测试的)。
(3)Add Class。\From a type Library。 在 Office
目录中,找到想使用的类型库。(我使用的是 Office2003,其Word 的类型库文件,保存在 E:\Program
Files\Microsoft Office\Office12\MSWOR.OLB)。
(4)选择类型库文件后,在弹出的对话窗中继续选择要添加的类。具体选择什么类,要看你将来在程序中打算调用什么功能。当然,也可以不用考虑这么多,用鼠标和Shift键配合,全部选择也可以。
(5)初始化COM。方法一,找到App的InitInstance()函数,在其中添加
AfxOleInit()函数的调用;方法二,在需要调用COM功能的地方 CoInitialize(NULL),调用完毕后
CoUninitialize()。
(6)在你需要调用 Office 功能函数的 cpp 文件中
#include
//
为了方便操作 VARIANT 类型变量,使用 CComVariant 模板类
#include "文件名.h" //
具体的头文件名,是由装载类型库的文件名决定的,如MSWORD。
示例程序:
//word应用程序
_Application app;
//初始化连接
app.CreateDispatch("word.Application");
Documents doc;
CComVariant
a(_T(strWord)),b(false),c(0),d(true),aa(0),bb(1);
_Document doc1;
doc.AttachDispatch(app.GetDocuments());
doc1.AttachDispatch(doc.Add(&a,&b,&c,&d));
Range range;
//求出文档的所选区域
range=doc1.GetContent();//取出文件内容
str=range.GetText();
m_richedit.SetWindowText(str);
//关闭
app.Quit(&b,&c,&c);
//释放环境
app.ReleaseDispatch();
三、如何打印一个word文档
你阅读MSDN(October2001)文章:Q184663 :UseMFCtoAutomateExcel&Create/FormataNewWorkbookQ186120 :CatchMicrosoftExcel97ApplicationEventsUsingVC++会对你有帮助。
如果要在你的程序中嵌入word等,可以使用htmlview实现。================事实上也就是:启动Word进程,然后调用Application.word的打印功能。
四、MFC怎么读写EXCEL文件
可以用多种方法,比如说用ODBC对excel数据库进行操作,或者说用excel 的COM接口进行编程。
我找到一个例子关键代码如下://创建并写入Excel文件void CRWExcel::WriteToExcel(){ CDatabase database; CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动 CString sExcelFile = "c:\\demo.xls"; // 要建立的Excel文件 CString sSql; TRY { // 创建进行存取的字符串 sSql.Format("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s", sDriver, sExcelFile, sExcelFile); // 创建数据库 (既Excel表格文件) if( database.OpenEx(sSql,CDatabase::noOdbcDialog) ) { // 创建表结构(姓名、年龄) sSql = "CREATE TABLE demo (Name TEXT,Age NUMBER)"; database.ExecuteSQL(sSql); // 插入数值 sSql = "INSERT INTO demo (Name,Age) VALUES (''徐景周'',26)"; database.ExecuteSQL(sSql); sSql = "INSERT INTO demo (Name,Age) VALUES (''徐志慧'',22)"; database.ExecuteSQL(sSql); sSql = "INSERT INTO demo (Name,Age) VALUES (''郭徽'',27)"; database.ExecuteSQL(sSql); } // 关闭数据库 database.Close(); } CATCH_ALL(e) { TRACE1("Excel驱动没有安装: %s",sDriver); } END_CATCH_ALL;}// 读取Excel文件void CRWExcel::ReadFromExcel() { CDatabase database; CString sSql; CString sItem1, sItem2; CString sDriver; CString sDsn; CString sFile = "Demo.xls"; // 将被读取的Excel文件名 // 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls)" sDriver = GetExcelDriver(); if (sDriver.IsEmpty()) { // 没有发现Excel驱动 AfxMessageBox("没有安装Excel驱动!"); return; } // 创建进行存取的字符串 sDsn.Format("ODBC;DRIVER={%s};DSN='''';DBQ=%s", sDriver, sFile); TRY { // 打开数据库(既Excel文件) database.Open(NULL, false, false, sDsn); CRecordset recset(&database); // 设置读取的查询语句. sSql = "SELECT Name, Age " "FROM demo " "ORDER BY Name "; // 执行查询语句 recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly); // 获取查询结果 while (!recset.IsEOF()) { //读取Excel内部数值 recset.GetFieldValue("Name ", sItem1); recset.GetFieldValue("Age", sItem2); // 移到下一行 recset.MoveNext(); } // 关闭数据库 database.Close(); } CATCH(CDBException, e) { // 数据库操作产生异常时。 AfxMessageBox("数据库错误: " + e->m_strError); } END_CATCH;。
五、在MFC中读取TXT文档
CStdioFile m_sfFile; CString value ;//返回值 //打开文档 CString myStr = _T(""); m_sfFile.Open (m_sFullName,CFile::modeCreate | CFile::modeNoTruncate| CFile::modeRead );LONGLONG lOff = 1000; //要偏移的位置 你可以用i j 算出来 m_sfFile.Seek( lOff, CFile::begin ); //定位行列的位置 while (m_sfFile.ReadString(value,100)) //开始从位置读100字符 { //读入并保存字符 myStr += value; } //关闭文件句柄 m_sfFile.Close();。
转载请注明出处51数据库 » mfc读写word文档
震sir