Visual Basic.NET - leer unos archivos excels de una carpeta y pasarlos a formato pdf

 
Vista:
sin imagen de perfil

leer unos archivos excels de una carpeta y pasarlos a formato pdf

Publicado por PETETE (37 intervenciones) el 09/06/2017 07:46:28
Hola buenas,
estoy tratando de hacer una aplicacion y no se por donde empezar.

La aplicacion se basa en leer unos archivos excels de una carpeta y pasarlos a formato pdf.

Quiero ir poco a poco asi estoy tratando de leer lso datos de 1 solo excel.
Una vez leido el excel, lo pasare a pdf ( o lo intentare pasar a pdf).

alguien podría guiarme un poquito?

Se lo agradecería muchiisimo.

Un saludo de vuestro amigo y vecino,
PETETE;)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Diego
Val: 605
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

leer unos archivos excels de una carpeta y pasarlos a formato pdf

Publicado por Diego (190 intervenciones) el 09/06/2017 23:37:57
Hola Petete, en principio es conectar con las referencias de Microsoft.Interop.Excel, para poder operar con los libros, las hojas y las celdas de tu archivo excel, otra referencia System.File.IO, para leer carpetas con varios archivos y luego, si tienes algúna impresora "virtual" del tipo PDFCreator, con la info leida (es muy amplia esta info, del mismo modo que lo es tu consulta), la formateas a tu gusto y lo envias a esa impresora virtual.

Espero haberte servido de guía.
Saludos y +Bytes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

leer unos archivos excels de una carpeta y pasarlos a formato pdf

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 10/06/2017 15:00:08
Para evitarte problemas de versiones del excel y la dependencia de tu aplicación si no está instalado excel, no funcionará, te recomiendo que utilices EPPlus para poder trabajar con los archivos de Excel, y para convertir a PDF, utiliza iTextSharp, ambos los puedes agregar desde los paquetes nugget.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

leer unos archivos excels de una carpeta y pasarlos a formato pdf

Publicado por PETETE (37 intervenciones) el 12/06/2017 18:44:13
Hola buenas,

lo primero, gracias por contestar.
Lo segundo, he sido capaz de leer los excels uno por uno y de moveros a otra carpeta..

Lo que se me hace complicado es el pasarlos a pdf.
Aquí os adjunto mi codigo para que le echeis un vistazo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Imports System.Collections.ObjectModel
Imports iTextSharp.text.pdf
Imports iTextSharp.text
 
 
Public Class Form1
 
    Dim fichero
    Dim files As ReadOnlyCollection(Of String)
    Dim ruta As String = "C:\Users\PEPE\Desktop\ficheros excel"
    Dim excel As Microsoft.Office.Interop.Excel.Application
    Dim carpeta_salida As String = "C:\Users\PEPE\Desktop\Nueva carpeta"
    Dim files2 As ReadOnlyCollection(Of String)
    Dim fichero2
 
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
 
    End Sub
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        files = My.Computer.FileSystem.GetFiles(ruta, FileIO.SearchOption.SearchTopLevelOnly, "*.xls")
        files2 = My.Computer.FileSystem.GetFiles(ruta, FileIO.SearchOption.SearchTopLevelOnly, "*.pdf")
        excel = New Microsoft.Office.Interop.Excel.Application
 
        For Each fichero In files
 
 
            excel.WindowState = Microsoft.Office.Interop.Excel.XlWindowState.xlNormal
 
 
            ' My.Computer.FileSystem.CopyDirectory(ruta, carpeta_salida)
 
            If My.Computer.FileSystem.FileExists(carpeta_salida) Then
                My.Computer.FileSystem.DeleteFile(carpeta_salida)
            Else
 
 
            End If
 
 
 
            convertir_pdf()
 
        Next
        For Each fichero2 In files2
            My.Computer.FileSystem.MoveFile(fichero2, carpeta_salida)
        Next
    End Sub
 
    Sub convertir_pdf()
 
        Dim documentoPDF As New Document(PageSize.A4.Rotate, 100, 100, 100, 100) ' SE LE PONE LAS CARACTERISTICAS DEL DOCUMENTO PDF (TAMAÑO ETC.)
        iTextSharp.text.pdf.PdfWriter.GetInstance(documentoPDF, New System.IO.FileStream(fichero & ".pdf", System.IO.FileMode.OpenOrCreate))
        'documentoPDF.Open()
 
    End Sub
End Class

La cosa de este codigo es que yo leo los excels como objeto e igual es por eso por lo que no puedo pasarlos a pdf...

pd, Otra de las coasas que no se hacer es enlazar el PDFCreator con el codigo en visual basic.net.. ¿podríais ayudarme en esto?

Os agradezco vuestra colaboración.

Un saludo de vuestro amigo y vecino,
PETETE;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

leer unos archivos excels de una carpeta y pasarlos a formato pdf

Publicado por PETETE (37 intervenciones) el 13/06/2017 15:37:54
Yo otra vez...

He estado informandome de como exportar a PDFCreator.. y no he encontrado nada.

Es necesario exportar librerias del PDFCreator a Visual Basic? si es asi, que librerias tendría que exportar?

Esque no se como exportar a PDFCreator. He visto codigos de ejemplo.
Por ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Private Sub Command1_Click()
    Dim cPDFCreator As clsPDFCreator
    Dim PDFName As String
    Dim PDFPath As String
 
 
    Set cPDFCreator = New clsPDFCreator
    Set cPDFCreatorOptions = New clsPDFCreatorOptions
    Set cPDFCreator.cOptions = cPDFCreatorOptions
    'Am storing default printer to restore it later
    strDefaultPrinter = Printer.DeviceName
    If cPDFCreator.cStart("/NoProcessingAtStartup") = False Then
            MsgBox "Can't initialize PDFCreator.", vbCritical + _
                    vbOKOnly, "Error!"
            Exit Sub
        End If
 
 
    With cPDFCreator
    .cOption("UseAutosave") = 1
    .cOption("UseAutosaveDirectory") = 1
    .cOption("AutosaveDirectory") = "C:\PDFTEST\test"
    .cOption("AutosaveFilename") = "Description du service.pdf"
    .cOption("AutosaveFormat") = 0    ' 0 = PDF
    .cSaveOptions
    .cClearCache
    .cPrinterStop = False
    .cDefaultPrinter = "PDFCreator"
    .cPrintFile "C:\PDFTEST\Description du service.doc"
     End With
    Printer.Print
 
    Set cPDFCreator = Nothing
    Set cPDFCreatorOptions = Nothing
 
    End Sub


EL codigo empieza con dim pdfcreator as cls pdfcreator... pero cuando lo escrubo yo me da error.. por eso pregunto lo de si hay que importar librerias.....


NECESITO AYUDA POR FAVOR... OS LA AGRADECERIA MUCHIIISIMO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar