Acerca de cómo funciona VC word2003

Lo siguiente es un extracto de CSDN. Se utiliza principalmente al depurar VC para operar Word2003. El que se descarga de Internet es para operar Word 2000, pero los parámetros ya son algo diferentes. El siguiente código se puede ejecutar en 2003 y está registrado aquí para revisión futura.

Gracias por utilizar los productos de Microsoft.

En cuanto a la pregunta que hizo, de hecho puede usar OLE Automation para operar el modelo de objetos de Word en VC. El siguiente artículo de la base de conocimientos muestra cómo introducir Office TypeLib en VC_ e iniciar MS Excel a través del programa. Consultar este artículo puede ayudarle a construir el marco del programa.

Q178749 CÓMO: Crear un proyecto de automatización usando MFC y. una biblioteca de tipos

/support/kb/articles/q178/7/49.asp

Los siguientes dos artículos de la base de conocimientos brindan ejemplos específicos de cómo operar Word y Excel. Utilice los métodos para completar sus propias operaciones. Para operaciones específicas del modelo de objetos, debe consultar la documentación de ayuda de VBA del producto correspondiente.

Q178784 CÓMO: Usar la automatización para abrir e imprimir un documento de Word

/support/kb/articles/q178/7/84.asp

Q179706 CÓMO: Utilice MFC para automatizar Excel y crear/formatear un nuevo libro de trabajo

/support/kb/articles/q179/7/06.asp

Estos dos artículos presentan algunos conocimientos básicos y algo de soporte. y preguntas frecuentes sobre productos de Office en Automatización. Puedes usarlo como referencia.

Q238972 INFORMACIÓN: Uso de Visual C para automatizar Office

/support/kb/articles/q238/9/72.asp

Q196776 Preguntas frecuentes: Uso de la automatización de Office Visual C

/support/kb/articles/q196/7/76.asp

Además, enumeré el código de muestra de Q178784 a continuación y agregué algunas notas en chino.

Pasos para Crear el Proyecto

--------------------------

1. En Microsoft Word, cree un nuevo documento, agregue algo de texto al documento y guárdelo como Test.doc. Cierre el documento y salga de Word.

2 Siga los pasos del 1 al 12 en. Consulte el siguiente artículo de Microsoft Knowledge Base para crear un proyecto de muestra que utiliza las interfaces IDispatch y las funciones miembro definidas en la biblioteca de tipos MSWord8.olb:

Q178749 CÓMO: Crear un proyecto de automatización usando MFC y una biblioteca de tipos

p>

Primero siga los pasos de Q178749 para crear un programa marco e introducir Word typelib.

3 En la parte superior de AutoProjectDlg.cpp, agregue la siguiente línea:

#include "msword8.h" // msword9.h para Word 2000, msword.h para Word 2002

4 Agregue el siguiente código a CAutoProjectDlg::OnRun() en AutoProjectDLG.cpp<. /p>

archivo.

Cuando se completen los pasos anteriores, verá que hay muchas clases nuevas en el proyecto, y esas clases corresponden al modelo de objetos de Word.

Código de muestra

-----------

_Application objWord; //Definir el objeto de aplicación de Word (Word.application)< / p>

// Valores convenientes declarados como ColeVariants.

COleVariant covTrue((short)TRUE),

covFalse((short)FALSE),

covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

// Obtenga el puntero IDispatch y adjúntelo al objeto objWord.

if (!objWord.CreateDispatch("Word . Aplicación"))

{

AfxMessageBox("No se pudo obtener el objeto de Word.");

retorno;

}

objWord.SetVisible(TRUE); //Esto muestra la aplicación.

Documents docs(objWord.GetDocuments()); //Definir objeto de documentos de Word (Word.Documents)< / p>

_Document testDoc; // Definir el objeto de documento de Word (Word.Document)

testDoc.AttachDispatch(docs.Open( // Puede verse como un conjunto de declaraciones de VB testDoc = Word. documentos.Open(…)

COleVariant("C:\\Test.doc", VT_BSTR),

covFalse, // Confirmar conversión.

covFalse , // Solo lectura .

covFalse, // AddToRecentFiles.

covOptional, // PasswordDocument.

covOptional, // PasswordTemplate.

covFalse, // Revertir.

covOptional, // WritePasswordDocument.

covOptional, // WritePasswordTemplate.

covOptional) // Formato. Word 97

covOptional, // Codificación // Nuevo para Word 2000/2002

covTrue, // Visible

covOptional, // OpenConflictDocument

covOptional, // OpenAndRepair

(long)0, // DocumentDirection wdDocumentDirection LeftToRight

covOptional // NoEncodingDialog

) // Cerrar Abrir parámetros

); // Cerrar AttachDispatch(?)

AfxMessageBox("Ahora imprimiendo 2 copias en la impresora activa");

testDoc.PrintOut(covFalse, / / Fondo. //Puede verse como una declaración VB testDoc.PrintOut(…)

covOptional, // Append.

covOptional, // Range.

covOptional , // NombreArchivoSalida.

covOptional, // Desde.

covOptional,

// A.

covOptional, // Artículo.

COleVariant((long)2), // Copias.

covOptional, // Páginas.

covOptional, // Tipo de página.

covOptional, // PrintToFile.

covOptional, // Clasificar.

covOptional, // ActivePrinterMacGX .

covOptional // ManualDuplexPrint.

covOptional, // PrintZoomColumn Nuevo con Word 2002

covOptional, // PrintZoomRow ídem

covOptional , // PrintZoomPaperWidth ídem

covOptional); // PrintZoomPaperHeight ídem

// Si desea obtener una vista previa de impresión del documento en lugar de imprimirlo,

// puede utilizar la función miembro PrintPreview en lugar de la

// función miembro PrintOut:

// testDoc.PrintPreview.

objWord.Quit(covFalse, / / SaveChanges

covTrue, // OriginalFormat.

covFalse // RouteDocument.

);

Es necesario modificar el código en CAutoProjectDlg::OnRun() para indicar la ruta correcta para su documento Test.doc. Se hace referencia al documento en la siguiente línea:

testDoc.AttachDispatch(docs.Open(

p>

COleVariant("C:\\Mis documentos\\Test.doc", VT_BSTR)...

class="endnav">

Copyright 2024 Red de conocimientos turísticos All Rights Reserved.