Application Type Library -------------------------------------------------- Microsoft Access 97 Msacc8.olb Microsoft Jet Database 3.5 DAO350.dll Microsoft Binder 97 Msbdr8.olb Microsoft Excel 97 Excel8.olb Microsoft Graph 97 Graph8.olb Microsoft Office 97 Mso97.dll Microsoft Outlook 97 Msoutl97.olb Microsoft PowerPoint 97 Msppt8.olb Microsoft Word 97 Msword8.olb Microsoft Access 2000 Msacc9.olb Microsoft Jet Database 3.51 DAO360.dll Microsoft Binder 2000 Msbdr9.olb Microsoft Excel 2000 Excel9.olb Microsoft Graph 2000 Graph9.olb Microsoft Office 2000 Mso9.dll Microsoft Outlook 2000 Msoutl9.olb Microsoft PowerPoint 2000 Msppt9.olb Microsoft Word 2000 Msword9.olb Microsoft Access 2002 Msacc.olb Microsoft Excel 2002 Excel.exe Microsoft Graph 2002 Graph.exe Microsoft Office 2002 MSO.dll Microsoft Outlook 2002 MSOutl.olb Microsoft PowerPoint 2002 MSPpt.olb Microsoft Word 2002 MSWord.olb Microsoft Office Access 2003 Msacc.olb Microsoft Office Excel 2003 Excel.exe Microsoft Graph 2003 Graph.exe Microsoft Office 2003 MSO.dll Microsoft Office Outlook 2003 MSOutl.olb Microsoft Office PowerPoint 2003 MSPpt.olb Microsoft Office Word 2003 MSWord.olb以上是各个版本的自动化SERVER所在的库文件!希望对你能有帮助!
Application Type Library -------------------------------------------------- Microsoft Access 97 Msacc8.olb Microsoft Jet Database 3.5 DAO350.dll Microsoft Binder 97 Msbdr8.olb Microsoft Excel 97 Excel8.olb Microsoft Graph 97 Graph8.olb Microsoft Office 97 Mso97.dll Microsoft Outlook 97 Msoutl97.olb Microsoft PowerPoint 97 Msppt8.olb Microsoft Word 97 Msword8.olb Microsoft Access 2000 Msacc9.olb Microsoft Jet Database 3.51 DAO360.dll Microsoft Binder 2000 Msbdr9.olb Microsoft Excel 2000 Excel9.olb Microsoft Graph 2000 Graph9.olb Microsoft Office 2000 Mso9.dll Microsoft Outlook 2000 Msoutl9.olb Microsoft PowerPoint 2000 Msppt9.olb Microsoft Word 2000 Msword9.olb Microsoft Access 2002 Msacc.olb Microsoft Excel 2002 Excel.exe Microsoft Graph 2002 Graph.exe Microsoft Office 2002 MSO.dll Microsoft Outlook 2002 MSOutl.olb Microsoft PowerPoint 2002 MSPpt.olb Microsoft Word 2002 MSWord.olb Microsoft Office Access 2003 Msacc.olb Microsoft Office Excel 2003 Excel.exe Microsoft Graph 2003 Graph.exe Microsoft Office 2003 MSO.dll Microsoft Office Outlook 2003 MSOutl.olb Microsoft Office PowerPoint 2003 MSPpt.olb Microsoft Office Word 2003 MSWord.olb
if (!ExcelApp.CreateDispatch("Excel.Application",NULL)) { AfxMessageBox("创建Excel服务失败!"); exit(1); } //利用模板文件建立新文档 wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true); wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t("g:\\exceltest\\MyTemplate.xlt"))); //得到Worksheets wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true); //得到sheet1 wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true); //得到全部Cells,此时,rgMyRge是cells的集合 rgMyRge.AttachDispatch(wsMysheet.GetCells(),true); //设置1行1列的单元的值 rgMyRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("This Is A Excel Test Program!")); //得到所有的列 rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true); //得到第一列 rgMyRge.AttachDispatch(rgMyRge.GetItem(_variant_t((long)1),vtMissing).pdispVal,true); //设置列宽 rgMyRge.SetColumnWidth(_variant_t((long)200)); //调用模板中预先存放的宏 ExcelApp.Run(_variant_t("CopyRow"),_variant_t((long)10),vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing); //打印预览 wbMyBook.SetSaved(true); ExcelApp.SetVisible(true); wbMyBook.PrintPreview(_variant_t(false)); //释放对象 rgMyRge.ReleaseDispatch(); wsMysheet.ReleaseDispatch(); wssMysheets.ReleaseDispatch(); wbMyBook.ReleaseDispatch(); wbsMyBooks.ReleaseDispatch(); ExcelApp.ReleaseDispatch(); } 添加完以上程序后,可运行看结果。
下面的代码可以运行并中止一个MS Word:Set WSHShell = WScript.CreateObject("WScript.Shell")
'创建MS Word对象
Set appWord = Wscript.CreateObject("Word.Application") '显示MS Word
appWord.Visible = TRUE ' Open a sample document.
appWord.Documents.Open("C:\Resume.doc")
WSHShell.popup "现在已经打开了word,下面的代码是为了关闭Word而设置的"
'退出MS Word
Set appWord = Nothing如何通过MFC打开Word文档并打印它?我们可以通过自动化方法完成要求的功能,下面这一段代码就很好地说明了问题: _Application objWord;
// Convenient values declared as ColeVariants.
COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
// Get the IDispatch pointer and attach it to the objWord object.
if (!objWord.CreateDispatch("Word.Application"))
{
AfxMessageBox("Couldn't get Word object.");
return;
}
objWord.SetVisible(TRUE); //显示应用程序
Documents docs(objWord.GetDocuments());
_Document testDoc;testDoc.AttachDispatch(docs.Open(
COleVariant("C:\\Test.doc",VT_BSTR),
covFalse, // 确定转换
covFalse, // 只读打开
covFalse, // 添加到最近使用文件列表
covOptional, // PasswordDocument.
covOptional, // PasswordTemplate.
covFalse, // Revert.
covOptional, // WritePasswordDocument.
covOptional, // WritePasswordTemplate.
covOptional) // Format. // 如果是Word97,这便是最好一个参数
covOptional, // 编码 // 下面是Word 2000/2002专用的参数
covTrue, // 可见
covOptional, // OpenConflictDocument
covOptional, // OpenAndRepair
(long)0, // DocumentDirection wdDocumentDirection LeftToRight
covOptional // NoEncodingDialog
)
);
AfxMessageBox("打印两份");
testDoc.PrintOut(covFalse, // 背景
covOptional, // Append.
covOptional, // Range.
covOptional, // OutputFileName.
covOptional, // From.
covOptional, // To.
covOptional, // Item.
COleVariant((long)2), // 份数
covOptional, // Pages.
covOptional, // PageType.
covOptional, // PrintToFile.
covOptional, // Collate.
covOptional, // ActivePrinterMacGX.
covOptional // ManualDuplexPrint.
covOptional, // PrintZoomColumn New with Word 2002
covOptional, // PrintZoomRow ditto
covOptional, // PrintZoomPaperWidth ditto
covOptional); // PrintZoomPaperHeight ditto
objWord.Quit(covFalse, // 保存修改
covTrue, // 原始格式
covFalse // RouteDocument.
);
关键字 VC,word,excel,powerpoint,office,java
用VC对Office进行操作的介绍已经不少了,但是从来没有把word,excel,powerPoint进进全面的介绍的。 由于工作的需要,我需要对在自己的软件中对word,excel,powerPoint进行操作。所以把自己的体会写出来和大家分享,希望对大家有所帮助。当然还有很多不当之处,希望大家指出。 用例子来说明吧,首先创建一个MFC AppWizard(EXE)工程,然后通过在VIEW菜单中,选ClassWizard,选Automation选项卡,选Add Class,选择From a TypeLibrary, 选中Microsoft Office 2000 类型库:Excel9.olb,MSPPT9.OLB,MSWORD9.OLB(在Microsoft Office\Office目录下) 会将类型库中的所有类添加到你的工程中。 然后写一个类来操作Office吧!ObtGuiGcomOfficePrinter .h
#if !defined(AFX_OBTGUIGCOMOFFICEPRINTER_H__03A0C2D8_DFC8_4B51_8ADB_994B86BACB82__INCLUDED_)
#define AFX_OBTGUIGCOMOFFICEPRINTER_H__03A0C2D8_DFC8_4B51_8ADB_994B86BACB82__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000#include "comdef.h"
#include "ObtGuiGcomMsWord9.h"
#include "ObtGuiGcomMsPpt9.h"
#include "ObtGuiGcomExcel9.h"class AFX_EXT_CLASS ObtGuiGcomOfficePrinter
{
public:
ObtGuiGcomOfficePrinter();
virtual ~ObtGuiGcomOfficePrinter();//Operator
public:
BOOL WordPrinterToJcf(LPCTSTR lpszFileName,LPCTSTR lpszActivePrinter);
BOOL ExcelPrinterToJcf(LPCTSTR lpszFileName,LPCTSTR lpszActivePrinter);
BOOL PowerPointPrinterToJcf(LPCTSTR lpszFileName,LPCTSTR lpszActivePrinter);};#include "stdafx.h"
#include "ObtGuiGcomOfficePrinter.h"#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////ObtGuiGcomOfficePrinter::ObtGuiGcomOfficePrinter()
{}
ObtGuiGcomOfficePrinter::~ObtGuiGcomOfficePrinter()
{}BOOL ObtGuiGcomOfficePrinter::PowerPointPrinterToJcf(LPCTSTR lpszFileName,LPCTSTR lpszActivePrinter)
{
_PptApplication m_powerpointApp;
Presentations m_powerpointPres;
_Presentation m_powerpointPre; m_powerpointPres.ReleaseDispatch();
m_powerpointPre.ReleaseDispatch();
if(!m_powerpointApp.CreateDispatch("PowerPoint.Application"))
{
AfxMessageBox("创建PowerPoint服务失败!");
return FALSE;
}
m_powerpointApp.m_bAutoRelease=true;
m_powerpointApp.SetVisible(TRUE);//对于PowerPoint必须设置为TRUE m_powerpointPres.AttachDispatch(m_powerpointApp.GetPresentations());
m_powerpointPres.Open(lpszFileName,-1,-1,-1);
m_powerpointPre.AttachDispatch(m_powerpointApp.GetActivePresentation(),TRUE);
m_powerpointPre.PrintOut(-1,-1,"",long(1),-1);
m_powerpointApp.Quit(); m_powerpointPre.ReleaseDispatch();
m_powerpointPres.ReleaseDispatch();
m_powerpointApp.ReleaseDispatch(); return TRUE;
}
BOOL ObtGuiGcomOfficePrinter::ExcelPrinterToJcf(LPCTSTR lpszFileName,LPCTSTR lpszActivePrinter)
{
_ExcelApplication m_excelApp;//定义Excel提供的应用程序对象
Workbooks m_excelBooks;
_Workbook m_excelBook;
m_excelBooks.ReleaseDispatch();
m_excelBook.ReleaseDispatch();
m_excelApp.m_bAutoRelease=true; //创建Excel 2000服务器(启动Excel)
if (!m_excelApp.CreateDispatch("Excel.Application"))
{
AfxMessageBox("创建Excel服务失败!");
return FALSE;
}
m_excelApp.SetVisible(FALSE); //设置为隐藏
//利用模板文件建立新文档
m_excelBooks.AttachDispatch(m_excelApp.GetWorkbooks(),true);
m_excelBook.AttachDispatch(m_excelBooks.Add(_variant_t(lpszFileName)));
//m_excelApp.SetActivePrinter(lpszActivePrinter); //设置当前打印机
COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);//定义打印机并打印
m_excelBook.PrintOut(covOptional,covOptional,COleVariant(long(1)),covFalse,covOptional,covOptional,covOptional,covOptional);
m_excelApp.Quit();//退出
m_excelBook.ReleaseDispatch();
m_excelBooks.ReleaseDispatch();
m_excelApp.ReleaseDispatch(); return TRUE;
}BOOL ObtGuiGcomOfficePrinter::WordPrinterToJcf(LPCTSTR lpszFileName,LPCTSTR lpszActivePrinter)
{
_WordApplication m_wordApp;//定义Word提供的应用程序对象
Documents m_wordDocs;//定义Word提供的文档对象
_Document m_wordDoc; //当前的的文档对象
m_wordDocs.ReleaseDispatch();
m_wordDoc.ReleaseDispatch();
m_wordApp.m_bAutoRelease=true;
if(!m_wordApp.CreateDispatch("Word.Application")) //创建Word应用服务
{
AfxMessageBox("创建Word应用服务失败!");
return FALSE;
} m_wordApp.SetVisible(FALSE); //设置为隐藏
//下面是打开文件定义VARIANT变量;
COleVariant varFilePath(lpszFileName);
COleVariant varstrNull("");
COleVariant varZero((short)0);
COleVariant varTrue(short(1),VT_BOOL);
COleVariant varFalse(short(0),VT_BOOL); m_wordDocs.AttachDispatch(m_wordApp.GetDocuments());//将Documents类对象m_Docs和Idispatch接口关联起来;
m_wordDocs.Open(varFilePath,varFalse,varFalse,varFalse,varstrNull,varstrNull,varFalse,varstrNull,varstrNull,varTrue,varTrue,varTrue);
m_wordDoc.AttachDispatch(m_wordApp.GetActiveDocument()); //得到当前激活的Document对象 m_wordApp.SetActivePrinter(lpszActivePrinter); //设置当前打印机
COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); //定义打印属性
m_wordDoc.PrintOut(covFalse,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
COleVariant((long)1),
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional);
m_wordApp.Quit(covOptional,covOptional,covOptional);//退出 m_wordDoc.ReleaseDispatch(); //断开关联;
m_wordDocs.ReleaseDispatch();
m_wordApp.ReleaseDispatch();
return TRUE;}以上是用Office打开相应的文档进行打印的操作,如果你需要进行相应的其他操作,你可以用Office里面的宏进行录制然后转化为相应的代码。对于在Java里需要时行Office操作的,你必须用JNI调用或运用Java-Com的相应包
-------------------------------------------------- Microsoft Access 97 Msacc8.olb
Microsoft Jet Database 3.5 DAO350.dll
Microsoft Binder 97 Msbdr8.olb
Microsoft Excel 97 Excel8.olb
Microsoft Graph 97 Graph8.olb
Microsoft Office 97 Mso97.dll
Microsoft Outlook 97 Msoutl97.olb
Microsoft PowerPoint 97 Msppt8.olb Microsoft Word 97 Msword8.olb
Microsoft Access 2000 Msacc9.olb
Microsoft Jet Database 3.51 DAO360.dll
Microsoft Binder 2000 Msbdr9.olb
Microsoft Excel 2000 Excel9.olb
Microsoft Graph 2000 Graph9.olb
Microsoft Office 2000 Mso9.dll
Microsoft Outlook 2000 Msoutl9.olb
Microsoft PowerPoint 2000 Msppt9.olb
Microsoft Word 2000 Msword9.olb Microsoft Access 2002 Msacc.olb
Microsoft Excel 2002 Excel.exe
Microsoft Graph 2002 Graph.exe
Microsoft Office 2002 MSO.dll
Microsoft Outlook 2002 MSOutl.olb
Microsoft PowerPoint 2002 MSPpt.olb
Microsoft Word 2002 MSWord.olb Microsoft Office Access 2003 Msacc.olb
Microsoft Office Excel 2003 Excel.exe
Microsoft Graph 2003 Graph.exe
Microsoft Office 2003 MSO.dll
Microsoft Office Outlook 2003 MSOutl.olb
Microsoft Office PowerPoint 2003 MSPpt.olb
Microsoft Office Word 2003 MSWord.olb以上是各个版本的自动化SERVER所在的库文件!希望对你能有帮助!
-------------------------------------------------- Microsoft Access 97 Msacc8.olb
Microsoft Jet Database 3.5 DAO350.dll
Microsoft Binder 97 Msbdr8.olb
Microsoft Excel 97 Excel8.olb
Microsoft Graph 97 Graph8.olb
Microsoft Office 97 Mso97.dll
Microsoft Outlook 97 Msoutl97.olb
Microsoft PowerPoint 97 Msppt8.olb Microsoft Word 97 Msword8.olb
Microsoft Access 2000 Msacc9.olb
Microsoft Jet Database 3.51 DAO360.dll
Microsoft Binder 2000 Msbdr9.olb
Microsoft Excel 2000 Excel9.olb
Microsoft Graph 2000 Graph9.olb
Microsoft Office 2000 Mso9.dll
Microsoft Outlook 2000 Msoutl9.olb
Microsoft PowerPoint 2000 Msppt9.olb
Microsoft Word 2000 Msword9.olb Microsoft Access 2002 Msacc.olb
Microsoft Excel 2002 Excel.exe
Microsoft Graph 2002 Graph.exe
Microsoft Office 2002 MSO.dll
Microsoft Outlook 2002 MSOutl.olb
Microsoft PowerPoint 2002 MSPpt.olb
Microsoft Word 2002 MSWord.olb Microsoft Office Access 2003 Msacc.olb
Microsoft Office Excel 2003 Excel.exe
Microsoft Graph 2003 Graph.exe
Microsoft Office 2003 MSO.dll
Microsoft Office Outlook 2003 MSOutl.olb
Microsoft Office PowerPoint 2003 MSPpt.olb
Microsoft Office Word 2003 MSWord.olb