VFP6 Excel y Array

30/08/2003 - 21:35 por Carlos | Informe spam
Gracias a Alfonso por la mano que me dio pero me gustaria consultarles algo,
lei por ahi que para automatizar excel desde VFP hay que hacer una macro en
excel con todas las cosas que queremos y despues adaptarla al codigo de VFP
todo perfecto hasta ese punto. Ahora: tengo un archivo de texto que quiero
abrir en excel, hice la macro y la adapte al fox y quedo algo asi:
********** esta es la macro de excel *********
Sub Mclientes()
' Mclientes Macro
' Macro grabada el 26-04-2002 por Carlos
ChDir "C:\Transfer"
Workbooks.OpenText FileName:="C:\Transfer\clientes.dat",
Origin:=xlWindows _
, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2),
Array( _
4, 2), Array(15, 2), Array(26, 2), Array(29, 2), Array(33, 2),
Array(44, 2), Array(52, 1), _
Array(132, 1), Array(134, 1), Array(174, 2), Array(177, 2),
Array(185, 9))
End Sub
***** y asi quedo en fox

oE=CREATEOBJECT("Excel.Application") && Crea el objeto
oE.Workbooks.OpenText FileName("C:\Transfer\archivo.dat")
******el problema es: "como paso esta parte al fox" esta seccion es la que
indica donde empieza y termina cada columna
Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth,
FieldInfo:=Array(Array(0, 2), Array(4, 2), Array(15, 2), Array(26, 2),
Array(29, 2), Array(33, 2), Array(44, 2), Array(52, 1), Array(132, 1),
Array(134, 1), Array(174, 2), Array(177, 2), Array(185, 9))
******
oE.visible=.T.

Preguntas similare

Leer las respuestas

#1 Esparta Palma
02/09/2003 - 21:01 | Informe spam
Carlos, utiliza el mismo hilo que empezaste para continuar la solución
de tu problema, no abras otro hilo pues se pierde la secuencia de cómo
vamos... (Usar Reply o Responder).
Con respecto al Automation te copio el mensaje de Alex Feldstein sobre
el tema:

********* Inicio de Mensaje ********************

Toma una referencia a Excel con:
oExcel = CreateObject("Excel.Application")

de allí en más tienes absoluto control y acceso a todo el Document
Object Model (DOM) de Excel.

Ej:
oExcel = CreateObject("Excel.Application")
oExcel.SheetsInNewWorkbook = 1
oWorkBook = oExcel.Workbooks.Add
oExcel.Visible=.t. && opcional
oRange = oExcel.ActiveSheet.Range("A1:B1")
oRange.Cells[1,1] = "ABC"
oRange.Cells[1,2] = "123"
oWorkBook.SaveAs("c:\temp\MiArchivo.xls")
oExcel.Quit

Otro ejemplo:

Abrir una planilla y leer de ella:

oExcel = CreateObject("Excel.Application")
oExcel.Visible = .T. && opcional
oWorkbook = oExcel.Workbooks.Open("test.xls")
oRange = oExcel.ActiveSheet.Range("A4:B6")
FOR nRow = 1 TO oRange.Rows.Count
FOR nColumn = 1 TO oRange.Columns.Count
? oRange.Cells[nRow, nColumn].Value
ENDFOR
ENDFOR

Otro:
http://www.portalfox.org/article.php?&sid74

La forma más fácil de aprender como hacer para usar Excel es crear un
macro y luego copiar y traducir el código de VBA creado (es simple).

El manual (CHM) de Office contiene información del Document Object
Model (DOM). También está en MSDN
(http://msdn.microsoft.com/library/o...lguide.htm)

También puedes usar un Object Browser. Hay uno en Office (Word, Excel,
etc.) y en VFP7 y VB6.

Usa ALT+F11 y lo verás entre los botones en la barra de herramientas.

También te recomiendo el libro "Microsoft Office Automation with
Visual FoxPro" por Tamar Granor y Della Martin,
http://www.hentzenwerke.com/catalog...utofox.htm

Puedes ver tambien un ejemplo un poco mas completo en el wiki de Fox:
http://fox.wikis.com/wc.dll?Wiki~AutomationExamples~VFP

Nota: El Intellisense te da mucha ayuda tambien (si tienes VFP7, y
sino, que esperas para hacer un upgrade)?



Alex Feldstein
________________________________
Microsoft Visual FoxPro MVP - MCP
Please respond only to the newsgroups so that all may benefit.
Favor de responder en los foros públicos asi todos se benefician.
Visual FoxPro FAQ, tricks & Tips:
http://www.feldstein.net/vfp_tips_tricks.asp (English)
http://www.feldstein.net/vfptips_sp.asp (Spanish)
(apply ROT-13 to get my email address to reply to)


Carlos wrote:

Gracias a Alfonso por la mano que me dio pero me gustaria consultarles algo,
lei por ahi que para automatizar excel desde VFP hay que hacer una macro en
excel con todas las cosas que queremos y despues adaptarla al codigo de VFP
todo perfecto hasta ese punto. Ahora: tengo un archivo de texto que quiero
abrir en excel, hice la macro y la adapte al fox y quedo algo asi:
********** esta es la macro de excel *********
Sub Mclientes()
' Mclientes Macro
' Macro grabada el 26-04-2002 por Carlos
ChDir "C:\Transfer"
Workbooks.OpenText FileName:="C:\Transfer\clientes.dat",
Origin:=xlWindows _
, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2),
Array( _
4, 2), Array(15, 2), Array(26, 2), Array(29, 2), Array(33, 2),
Array(44, 2), Array(52, 1), _
Array(132, 1), Array(134, 1), Array(174, 2), Array(177, 2),
Array(185, 9))
End Sub
***** y asi quedo en fox

oE=CREATEOBJECT("Excel.Application") && Crea el objeto
oE.Workbooks.OpenText FileName("C:\Transfer\archivo.dat")
******el problema es: "como paso esta parte al fox" esta seccion es la que
indica donde empieza y termina cada columna
Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth,
FieldInfo:=Array(Array(0, 2), Array(4, 2), Array(15, 2), Array(26, 2),
Array(29, 2), Array(33, 2), Array(44, 2), Array(52, 1), Array(132, 1),
Array(134, 1), Array(174, 2), Array(177, 2), Array(185, 9))
******
oE.visible=.T.







Apoya a Visual FoxPro usándolo legalmente
ž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º
Espartaco Palma Martínez
SysOp PortalFox ( http://www.PortalFox.com )
email:
Acapulco, Guerrero. México
Respuesta Responder a este mensaje
#2 Esparta Palma
02/09/2003 - 21:14 | Informe spam
Tambien necesitarás las constantes de Excel como son xlWindows,
xlFixedWidth, etc...

- Obtener las constantes de MS Office desde los archivos .OLB con VFP
Enviado por Luis María Guayán, el 25/10/2002 12:08:52 a.m.
http://www.portalfox.com/article.php?sidV8

- Extraer constantes de un COM Library
Enviado por Esparta Palma, el 07/01/2003 12:03:29 a.m.
http://www.portalfox.com/article.php?sidc9


Apoya a Visual FoxPro usándolo legalmente
ž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º
Espartaco Palma Martínez
SysOp PortalFox ( http://www.PortalFox.com )
email:
Acapulco, Guerrero. México


Esparta Palma wrote:

Carlos, utiliza el mismo hilo que empezaste para continuar la solución
de tu problema, no abras otro hilo pues se pierde la secuencia de cómo
vamos... (Usar Reply o Responder).
Con respecto al Automation te copio el mensaje de Alex Feldstein sobre
el tema:

********* Inicio de Mensaje ********************

Toma una referencia a Excel con:
oExcel = CreateObject("Excel.Application")

de allí en más tienes absoluto control y acceso a todo el Document
Object Model (DOM) de Excel.

Ej:
oExcel = CreateObject("Excel.Application")
oExcel.SheetsInNewWorkbook = 1
oWorkBook = oExcel.Workbooks.Add
oExcel.Visible=.t. && opcional
oRange = oExcel.ActiveSheet.Range("A1:B1")
oRange.Cells[1,1] = "ABC"
oRange.Cells[1,2] = "123"
oWorkBook.SaveAs("c:\temp\MiArchivo.xls")
oExcel.Quit

Otro ejemplo:

Abrir una planilla y leer de ella:

oExcel = CreateObject("Excel.Application")
oExcel.Visible = .T. && opcional
oWorkbook = oExcel.Workbooks.Open("test.xls")
oRange = oExcel.ActiveSheet.Range("A4:B6")
FOR nRow = 1 TO oRange.Rows.Count
FOR nColumn = 1 TO oRange.Columns.Count
? oRange.Cells[nRow, nColumn].Value
ENDFOR
ENDFOR

Otro:
http://www.portalfox.org/article.php?&sid74

La forma más fácil de aprender como hacer para usar Excel es crear un
macro y luego copiar y traducir el código de VBA creado (es simple).

El manual (CHM) de Office contiene información del Document Object
Model (DOM). También está en MSDN
(http://msdn.microsoft.com/library/o...lguide.htm)


También puedes usar un Object Browser. Hay uno en Office (Word, Excel,
etc.) y en VFP7 y VB6.

Usa ALT+F11 y lo verás entre los botones en la barra de herramientas.

También te recomiendo el libro "Microsoft Office Automation with
Visual FoxPro" por Tamar Granor y Della Martin,
http://www.hentzenwerke.com/catalog...utofox.htm

Puedes ver tambien un ejemplo un poco mas completo en el wiki de Fox:
http://fox.wikis.com/wc.dll?Wiki~AutomationExamples~VFP

Nota: El Intellisense te da mucha ayuda tambien (si tienes VFP7, y
sino, que esperas para hacer un upgrade)?



Alex Feldstein
________________________________
Microsoft Visual FoxPro MVP - MCP
Please respond only to the newsgroups so that all may benefit.
Favor de responder en los foros públicos asi todos se benefician.
Visual FoxPro FAQ, tricks & Tips:
http://www.feldstein.net/vfp_tips_tricks.asp (English)
http://www.feldstein.net/vfptips_sp.asp (Spanish)
(apply ROT-13 to get my email address to reply to)


Carlos wrote:

Gracias a Alfonso por la mano que me dio pero me gustaria consultarles
algo,
lei por ahi que para automatizar excel desde VFP hay que hacer una
macro en
excel con todas las cosas que queremos y despues adaptarla al codigo
de VFP
todo perfecto hasta ese punto. Ahora: tengo un archivo de texto que
quiero
abrir en excel, hice la macro y la adapte al fox y quedo algo asi:
********** esta es la macro de excel *********
Sub Mclientes()
' Mclientes Macro
' Macro grabada el 26-04-2002 por Carlos
ChDir "C:\Transfer"
Workbooks.OpenText FileName:="C:\Transfer\clientes.dat",
Origin:=xlWindows _
, StartRow:=1, DataType:=xlFixedWidth,
FieldInfo:=Array(Array(0, 2),
Array( _
4, 2), Array(15, 2), Array(26, 2), Array(29, 2), Array(33, 2),
Array(44, 2), Array(52, 1), _
Array(132, 1), Array(134, 1), Array(174, 2), Array(177, 2),
Array(185, 9))
End Sub
***** y asi quedo en fox

oE=CREATEOBJECT("Excel.Application") && Crea el objeto
oE.Workbooks.OpenText FileName("C:\Transfer\archivo.dat")
******el problema es: "como paso esta parte al fox" esta seccion es la
que
indica donde empieza y termina cada columna
Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth,
FieldInfo:=Array(Array(0, 2), Array(4, 2), Array(15, 2), Array(26, 2),
Array(29, 2), Array(33, 2), Array(44, 2), Array(52, 1), Array(132, 1),
Array(134, 1), Array(174, 2), Array(177, 2), Array(185, 9))
******
oE.visible=.T.







Respuesta Responder a este mensaje
#3 Esparta Palma
02/09/2003 - 21:16 | Informe spam
Con Automation, básicamente usted usa el "modelo de objetos" que un
programa como Excel "expone", es decir, pone a disposición de otros
programas. A través de este "modelo de objetos", el programador tiene
acceso a las hojas de cálculo, columnas, filas, celdas, fórmulas,
gráficos, etc., de Excel - todo esto, usando una mezcla de estructuras
de programación de Visual FoxPro, y objetos de Excel.

Automatización de Excel
Autor: Hilmar Zonneveld

http://www.universalthread.com/Span...Page45.asp


Estos son los primeros pasos para comenzar a utilizar OLE Automation con
Visual FoxPro. En este breve ejemplo veremos como mantener una "charla"
entre VFP y Excel.

Como dar los primeros pasos con OLE Automation y VFP
Autor: Luis María Guayán
http://www.portalfox.com/article.php?sid#0

Espero te sirva.

Apoya a Visual FoxPro usándolo legalmente
ž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º
Espartaco Palma Martínez
SysOp PortalFox ( http://www.PortalFox.com )
email:
Acapulco, Guerrero. México


Carlos wrote:
Gracias a Alfonso por la mano que me dio pero me gustaria consultarles algo,
lei por ahi que para automatizar excel desde VFP hay que hacer una macro en
excel con todas las cosas que queremos y despues adaptarla al codigo de VFP
todo perfecto hasta ese punto. Ahora: tengo un archivo de texto que quiero
abrir en excel, hice la macro y la adapte al fox y quedo algo asi:
********** esta es la macro de excel *********
Sub Mclientes()
' Mclientes Macro
' Macro grabada el 26-04-2002 por Carlos
ChDir "C:\Transfer"
Workbooks.OpenText FileName:="C:\Transfer\clientes.dat",
Origin:=xlWindows _
, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2),
Array( _
4, 2), Array(15, 2), Array(26, 2), Array(29, 2), Array(33, 2),
Array(44, 2), Array(52, 1), _
Array(132, 1), Array(134, 1), Array(174, 2), Array(177, 2),
Array(185, 9))
End Sub
***** y asi quedo en fox

oE=CREATEOBJECT("Excel.Application") && Crea el objeto
oE.Workbooks.OpenText FileName("C:\Transfer\archivo.dat")
******el problema es: "como paso esta parte al fox" esta seccion es la que
indica donde empieza y termina cada columna
Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth,
FieldInfo:=Array(Array(0, 2), Array(4, 2), Array(15, 2), Array(26, 2),
Array(29, 2), Array(33, 2), Array(44, 2), Array(52, 1), Array(132, 1),
Array(134, 1), Array(174, 2), Array(177, 2), Array(185, 9))
******
oE.visible=.T.




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida