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.
 

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

Preguntas similares