A ver si este ejemplo es lo que buscas. Hay que definir la tabla de lo
que vas a recibir.
Saludos desde Mexico
Hernan E. Delgado
xArchivo="g:\Cot15Feb2010.xls"
xTabla="Hoja1"
*!* IF USED("&xTabla")
*!* SELECT("&xTabla")
*!* USE
*!* ENDIF
*!* USE &xTabla IN 0
CREATE CURSOR (xTabla) ;
(codigo_cli c(6), ;
clinombre c(40), ;
NoFormula c(10), ;
Producto c(40), ;
Presentacion c(15), ;
capacidad N(6,0), ;
unidad c(2), ;
Fecha D, ;
Flete c(30), ;
Moneda c(8), ;
precio N(15,4), ;
Cotizacion c(6), ;
NewPrice N(15,4), ;
Inc N(15,4))
loExcel = CREATEOBJECT("Excel.Application")
WITH loExcel.Application
.Visible = .T.
.Workbooks.Open("&xArchivo")
* Cantidad de columnas o campos
lnCol = .ActiveSheet.UsedRange.Columns.Count
* Se resta la cantidad de filas donde estan los campos
lnFil = .ActiveSheet.UsedRange.Rows.Count - 1
FOR lnJ = 2 TO lnFil
SELECT("&xTabla")
APPEND BLANK
FOR lnI = 1 TO lnCol
xCampo = .ActiveSheet.Cells(1,lnI).value &&Nombre del
campo destino
xTipoCampo = TYPE((FIELD(lnI))) && Se obtiene el tipo de
campo
xValor = .ActiveSheet.Cells(lnJ,lnI).value && Se obtiene
el valor del campo
*!* xTipoCampo = varTYPE(xValor) && Se obtiene el tipo
de campo
*!* ?? varTYPE(xvalor)
*!* ?? xCampo + ": " &&Muestra el nombre del campo
*!* ?? xValor &&Muestra el valor del campo
DO CASE
CASE xTipoCampo = "D"
IF ISNULL(xValor)
REPLACE (FIELD(lnI)) WITH CTOD(" / / ")
ELSE
*REPLACE (FIELD(lnI)) WITH TTOD(xvalor) IN &xTabla
REPLACE (FIELD(lnI)) WITH Car2Fecha(xvalor) IN
&xTabla
ENDIF
CASE xTipoCampo = "C"
IF VARTYPE(xValor) = "N"
REPLACE (FIELD(lnI)) WITH
ALLTRIM(UPPER(STR(xvalor))) IN &xTabla
ELSE
REPLACE (FIELD(lnI)) WITH xValor IN &xTabla
ENDIF
CASE xTipoCampo = "N"
IF ISNULL(xValor)
REPLACE (FIELD(lnI)) WITH 0 IN &xTabla
ELSE
REPLACE (FIELD(lnI)) WITH xValor IN &xTabla
ENDIF
ENDCASE
ENDFOR
ENDFOR
*Cierro plantilla
.Workbooks.Close
*Salgo de Excel
.Quit
ENDWITH
RELEASE loExcel
SELECT("&xTabla")
BROWSE
*!* xx = "07-Jun-94"
*!* ? Car2Fecha(xx)
Function Car2Fecha (cFecha as Character)
LOCAL cDia,cMes,cAno
cDia = SUBSTR(cFecha,1,2)
cMes = SUBSTR(cFecha,4,3)
cAno = SUBSTR(cfecha,8,2)
DO CASE
CASE cMes = "Jan"
nMes = 1
CASE cMes = "Feb"
nMes = 2
CASE cMes = "Mar"
nMes = 3
CASE cMes = "Apr"
nMes = 4
CASE cMes = "May"
nMes = 5
CASE cMes = "Jun"
nMes = 6
CASE cMes = "Jul"
nMes = 7
CASE cMes = "Aug"
nMes = 8
CASE cMes = "Sep"
nMes = 9
CASE cMes = "Oct"
nMes = 10
CASE cMes = "Nov"
nMes = 11
CASE cMes = "Dec"
nMes = 12
ENDCASE
dFecha =
DATE(IIF(VAL(cAno)>50,1900+VAL(cAno),2000+VAL(cAno)),nMes,VAL(cDia))
RETURN dFecha
>>> Demetrio Arias <artesisa@yahoo.com> jueves, 23 de febrero de 2012
11:19:34 a.m. >>>
Hola!
Gracias por tú cooperación, soy de República Dominicana.
Esta fuente trabaja excelente, pero lo que yo quiero es el caso
alrevez, que desde un Archivo Excel 2007, llevar los datos a una Tabla
de Foxpro Versión 6.0
Si puede seguier ayudandome te lo agradesco.
Muchas Gracias,
D. Arias.
________________________________
De: Alceu <alceu11@yahoo.com.br>
Para: usuarios_fox@yahoogrupos.com.mx
Enviado: Jueves, febrero 23, 2012 6:44 A.M.
Asunto: [usuarios_fox] Re: Pueden ayudarme a usar el Append from type
xls
Hola
Soy del Brazil
Saludos
**- Aki uno exemplo
CLOSE DATABASES
IF !FILE('CLIENTE.DBF')
CREATE TABLE CLIENTE (NUMERO N(4,0),NOME_CLI C(30), ENDERECO C(40),
BAIRRO C(20), CIDADE C(30), UF C(2))
SELECT CLIENTE
INDEX on nome_cli TAG cliente
set orde to cliente
FOR I=1 TO 20
INSERT INTO CLIENTE (NUMERO,noME_CLI,ENDERECO) VALUES (I,"CLIENTE
"+STR(I), 'RUA ')
ENDFOR
ENDIF
IF !USED("CLIENTE")
USE CLIENTE IN 0 ALIAS CLIENTE SHARED
ENDIF
SELECT CLIENTE
xFinal = RECCOUNT("cliente")
xInicio = 1
WAIT windows "Aguarde, abrindo o excel e montando a Planilia..." NOWAIT
NOCLEAR
Oexcel=createobject("Excel.application")
Oexcel.workbooks.add
Oexcel.visible=.t.
x = 1
SELECT cliente
GO TOP
DO WHILE x <= xFinal
IF X = 1
Oexcel.cells(x,1).font.size=10
Oexcel.cells(x,1).font.color=rgb(180,0,0)
Oexcel.cells(x,1).font.bold=.t.
OExcel.Range("B1").Value = 500
Oexcel.cells(x,1).value='Tabela de precos' &&xPedidos
ELSE
Oexcel.cells(x,1).font.size=12
Oexcel.cells(x,1).font.color=rgb(0,0,255)
Oexcel.cells(x,1).font.bold=.f.
Oexcel.cells(x,1).value=cliente.NUMERO
Oexcel.cells(x,2).font.size=12
Oexcel.cells(x,2).font.color=rgb(0,0,255)
Oexcel.cells(x,2).font.bold=.f.
Oexcel.cells(x,2).value=cliente.noME_CLI
Oexcel.cells(x,3).font.size=12
Oexcel.cells(x,3).font.color=rgb(0,0,255)
Oexcel.cells(x,3).font.bold=.f.
Oexcel.cells(x,3).value=cliente.endERECO
ENDIF
SELECT cliente
SKIP
x=x+1
ENDDO
WAIT CLEAR
[Se han eliminado los trozos de este mensaje que no contenían texto]
------------------------------------
Comentarios, observaciones o si deseas darte de baja avísame a:
jamorquecho@hotmail.com
Enlaces a Yahoo! Grupos
------------------------------------
Comentarios, observaciones o si deseas darte de baja avísame a: jamorquecho@hotmail.com
Enlaces a Yahoo! Grupos
<*> Para visitar tu grupo en la web, ve a:
http://mx.groups.yahoo.com/group/usuarios_fox/
<*> La configuración de tu correo:
Mensajes individuales | Tradicional
<*> Para modificar la configuración desde la Web, visita:
http://mx.groups.yahoo.com/group/usuarios_fox/join
(ID de Yahoo! obligatoria)
<*> Para modificar la configuración mediante el correo:
usuarios_fox-digest@yahoogrupos.com.mx
usuarios_fox-fullfeatured@yahoogrupos.com.mx
<*> Para cancelar tu suscripción en este grupo, envía
un mensaje en blanco a:
usuarios_fox-unsubscribe@yahoogrupos.com.mx
<*> El uso que hagas de Yahoo! Grupos está sujeto a
las Condiciones del servicio de Yahoo!:
http://mx.yahoo.com/docs/info/utos.html
Nenhum comentário:
Postar um comentário