Hacer que Visual studio abra archivo en libreoffice .dotx

Tengo un proyecto creado en visual studio, el cual mediante código abre una plantilla de word (.dotx) por supuesto, abriendo una copia del mismo y no el archivo original de forma que el archivo original nunca es modificado.

El problema es que en el trabajo me han quitado el word de microsoft y nos han dejado por cuestión económica el libreoffice con lo que ahora el proyecto no abre los documentos.

¿Podeis ayudarme?

Un cordial saludo y muy agradecido de antemano por vuestras respuestas.

1 respuesta

Respuesta

La compatibilidad no existe así por así, pero igual existe la opción de añadir la API de libreoffice. Te pongo un ejemplo de una hoja de calculo.

Dim oServicio As Object
Dim Escritorio As Object
Dim Document As Object
Dim oHoja As Object
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    oServicio = CreateObject("com.sun.star.ServiceManager")
    Escritorio = oServicio.createInstance("com.sun.star.frame.Desktop")
    Dim args(1) As Object
    args(0) = oServicio.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
    args(0).Name = "Hidden"
    args(0).Value = True
    Document = Escritorio.loadComponentFromURL("private:factory/scalc", "_blank", 0, args)
    oHoja = Document.getSheets().getByIndex(0)
    Call oHoja.getcellbyposition(0, 0).setFormula("Federico")
    Call oHoja.getcellbyposition(0, 0).SetPropertyValue("CellBackColor", RGB(200, 30, 30))
    Call oHoja.getcellbyposition(0, 1).setFormula("ForoOpen")
    Call oHoja.getcellbyposition(0, 1).SetPropertyValue("CellBackColor", RGB(300, 30, 30))
    Call Document.getCurrentController.getFrame.getContainerWindow.setVisible(True)
    Call Document.getCurrentController.getFrame.getComponentWindow.setVisible(True)
    oHoja = Nothing
    Document = Nothing
    Escritorio = Nothing
    oServicio = Nothing
End Sub

El propio libre office tiene un programa de programacion denominado LibreOffice Basic para programar con sus propios programas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas