Archivo de excel a pdf desde VFP

584 views
Skip to first unread message

Jorge Bravo

unread,
Jul 7, 2015, 7:02:24 PM7/7/15
to publice...@googlegroups.com
Buenas tardes a todos, tengo un problema y necesito ayuda de la comunidad. Tengo un archivo que esta en excel y quiero pasarle a pdf desde vfp automatizando la acción, es posible realizar ese proceso?

Allan Raúl Acuña

unread,
Jul 7, 2015, 7:07:15 PM7/7/15
to publice...@googlegroups.com
Mira como lo hago con Word:

#Define wdExportFormatPDF 17
#Define wdExportOptimizeForPrint 0
#Define wdExportFromTo 3
#Define wdExportDocumentContent 0
#Define wdExportCreateNoBookmarks 0

lcFileOpenDirectory = "G:\EasyFolio\PDF\temp00.pdf"

oWord.ActiveDocument.ExportAsFixedFormat(lcFileOpenDirectory, 17, .f., 0, )

For i=1 To lnNumPagina2

lcFileOpenDirectory = "G:\EasyFolio\PDF\temp"+Alltrim(Str(i))+".pdf"
From_ = i
To_   = i

oWord.ActiveDocument.ExportAsFixedFormat( lcFileOpenDirectory,;
wdExportFormatPDF,;
.F.,;
wdExportOptimizeForPrint,;
wdExportFromTo,;
From_,;
To_,;
wdExportDocumentContent, ;
.T.,;
.T.,;
wdExportCreateNoBookmarks,;
.T.,;
.T.,;
.F.)
ENDFOR 

Todo esto lo hice partiendo de la creación de la Macro creada para ver su codificación y posteriormente transcrito a Fox.

Saludos cordiales.

Lic. Allan Raúl Acuña
Analista Programador
msn= allan...@hotmail.com
skype= NicEasySoft
            +(505) 8 999 8950
Managua, Nicaragua
Centroamérica



Date: Tue, 7 Jul 2015 16:02:24 -0700
From: jorgeb...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Archivo de excel a pdf desde VFP

Jose Mario

unread,
Jul 8, 2015, 11:14:22 AM7/8/15
to publice...@googlegroups.com, jorgeb...@gmail.com
coloca esto en el init del file excel


Sub PDFActiveSheet()
Dim ws As Worksheet
Dim strPath As String
Dim myFile As Variant
Dim strFile As String
On Error GoTo errHandler

Set ws = ActiveSheet

'enter name and select folder for file
'start in current workbook folder
'strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
            & "_" _
            & Format(Now(), "yyyymmdd\_hhmm") _
            & ".pdf"
strFile = "tmp.pdf"

strFile = ThisWorkbook.Path & "\" & strFile

myFile = Application.GetSaveAsFilename _
    (InitialFileName:=strFile, _
        FileFilter:="PDF Files (*.pdf), *.pdf", _
        Title:="Select Folder and FileName to save")

If myFile <> "False" Then
    ws.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=myFile, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

    MsgBox "PDF file has been created."
End If

exitHandler:
    Exit Sub
errHandler:
    MsgBox "Could not create PDF file"
    Resume exitHandler
End Sub

Jose Mario

unread,
Jul 8, 2015, 11:16:21 AM7/8/15
to publice...@googlegroups.com, jorgeb...@gmail.com
perdon es excel me equivoque con vfp

se llama la su rutina

Sub auto_open()
end sub





El martes, 7 de julio de 2015, 17:02:24 (UTC-6), Jorge Bravo escribió:

Jose Mario

unread,
Jul 8, 2015, 11:17:28 AM7/8/15
to publice...@googlegroups.com, jorgeb...@gmail.com
te pide el nombre del pdf y su direccion

'enter name and select folder for file
'start in current workbook folder
'strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
            & "_" _
            & Format(Now(), "yyyymmdd\_hhmm") _
            & ".pdf"
strFile = "tmp.pdf"



El martes, 7 de julio de 2015, 17:02:24 (UTC-6), Jorge Bravo escribió:

Jose Mario

unread,
Jul 8, 2015, 11:22:19 AM7/8/15
to publice...@googlegroups.com, maov...@gmail.com, jorgeb...@gmail.com
Sub auto_open()
call PDFActiveSheet()
end sub

Jorge Bravo

unread,
Jul 8, 2015, 1:01:31 PM7/8/15
to publice...@googlegroups.com, maov...@gmail.com, jorgeb...@gmail.com
Quiero agradecer a todos los que me ayudaron, me dieron la idea, pero encontré como funciona el bendito método después de jugar con el.
en realidad una vez abierto el objeto excel y el archivo a trabajar use asi:

WITH loExcel.APPLICATION
.ActiveWorkbook.ExportAsFixedFormat(0,xarchivo,0,0,0,1,1)
ENDWITH

la posición de las cosas es la siguiente:

0 = significa PDF
xarchivo = es la variale donde tengo la ruta y nombre del archivo
0 = ni idea
0 = ni idea
0 = ni idea
1 = pagina inicial
1 = pagina final

Por que describo esto, debido a que en la sintaxis de este método no esta en el orden que explica, o no uso como debe ser, pero la verdad probé de muchas maneras sin ninguna resultado positivo, hasta el momento que lo escribo como explico arriba.

Ahora lo que no entiendo que una vez transformado el documento a excel, se me corta una parte del final. tienes idea por que pasa eso?

Muchas gracias por la ayuda....

Jorge Bravo

unread,
Jul 8, 2015, 1:03:51 PM7/8/15
to publice...@googlegroups.com, jorgeb...@gmail.com, maov...@gmail.com
esta es la rutina completa
***********************************
xarchivo = SYS(5)+SYS(2003)+archivo_plantilla1
xtitulo  = "Ficha de creciemiento"
SELECT consulta
CALC MAX(edad) TO edad_maxima
IF edad_maxima < 62
edad_maxima = 62
ENDIF
go top

loExcel=Createobject("Excel.application")
loExcel.Visible = .F.
loBook = loExcel.Workbooks.Open(SYS(5)+SYS(2003)+archivo_plantilla)  && ARCHIVO PLANTILLA
hoja = loBook.Sheets['datos']    && HOJA DE DATOS
fila = edad+2  && POSICION DE LA CELDA
hoja.ACTIVATE
WITH lobook.ActiveSheet
FOR x = 3 TO edad_maxima && ELIMINA DATOS DE LAS CELDAS
.Range("C"+alltrim(str(x))).Value = ""
NEXT
DO WHILE !EOF() && PONE NUEVOS DATOS EN LAS CELDAS
IF edad # 0
.Range("C"+alltrim(str(fila))).Value = kg
ENDIF
SKIP
fila=edad+2
ENDDO
ENDWITH
hoja = loBook.Sheets['grafico'] && HOJA DEL GRAFICO
hoja.ACTIVATE
WITH loExcel.APPLICATION
.ActiveWorkbook.SAVE
.ActiveWorkbook.ExportAsFixedFormat(0,xarchivo,0,0,0,1,1)
ENDWITH
_Screen.LockScreen= .f.
loExcel.quit() && CIERRA EXCEL
RELEASE loExcel

Reply all
Reply to author
Forward
0 new messages