Ciao a tutti,
chi non muore si rivede
Sono un po' arrugginito, si possono esportare le immagini da un foglio di calcolo rilevandone la posizione della cella a cui erano linkati?
[Risolto] Esportazione immagini da calc
- xergio
- Messaggi: 315
- Iscritto il: lunedì 15 marzo 2010, 21:54
- Località: Arzignano (Vicenza)
- Contatta:
[Risolto] Esportazione immagini da calc
Ultima modifica di xergio il sabato 14 gennaio 2017, 9:04, modificato 1 volta in totale.
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
Re: Esportazione immagini da calc
ti accontenti con questa ?
Codice: Seleziona tutto
Sub ExportImages
sPath = "F:\Download\"
oSheet = ThisComponent.CurrentController.ActiveSheet
For i=0 To oSheet.DrawPage.getCount()-1
g = oSheet.Drawpage.getByIndex(i)
saveGraphic(g.Graphic,ConvertToURL(sPath & g.Name & ".jpg"))
Next
End Sub
Sub saveGraphic(in_obj, out_url)
Dim i(0) As New com.sun.star.beans.PropertyValue
Dim a(1) As New com.sun.star.beans.PropertyValue
Dim p As Object
Dim g As Object
p = createUnoService("com.sun.star.graphic.GraphicProvider")
a(0).Name = "MimeType"
a(0).Value = "image/jpeg"
a(1).Name = "URL"
a(1).Value = out_url
p.storeGraphic(in_obj,a)
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
- xergio
- Messaggi: 315
- Iscritto il: lunedì 15 marzo 2010, 21:54
- Località: Arzignano (Vicenza)
- Contatta:
Re: Esportazione immagini da calc
Ottima, grazie!
Poi stanotte avevo risolto (in modo poco elegante sicuro, avendo esportato prima le immagini in una cartella dezippando il file, e in Python), così, ma la tua è molto meglio da OO:
P.S. non credevo che Xray funzionasse ancora con LibO 5.1
Poi stanotte avevo risolto (in modo poco elegante sicuro, avendo esportato prima le immagini in una cartella dezippando il file, e in Python), così, ma la tua è molto meglio da OO:
Codice: Seleziona tutto
doc = XSCRIPTCONTEXT.getDocument()
def get_images():
path = "/home/sergio/customer/Pictures/"
for s in range(0, doc.Sheets.getCount()-1):
sheet = doc.Sheets.getByIndex(s)
draw_page = sheet.getDrawPage()
for i in range(0, draw_page.getCount()-1):
file_path = ''
graphic = draw_page.getByIndex(i)
cell = sheet.getCellRangeByName(graphic.getAnchor().AbsoluteName)
mime_type = graphic.Graphic.MimeType
ext = 'png'
if mime_type == "image/jpeg":
ext = 'jpg'
if mime_type == "image/x-wmf":
ext = 'wmf'
file_path = path + \
graphic.GraphicURL[len(graphic.GraphicURL)-27:] + \
'.' + ext
cell.String = file_path
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
Re: Esportazione immagini da calc [RISOLTO]
quasta indica anche le celle (se le immagini son ancorate alle celle)
Codice: Seleziona tutto
Sub ExportImages
Dim s As new com.sun.star.awt.Size
Dim gp As new com.sun.star.awt.Point
dim acell as object
'Dim ap As new com.sun.star.awt.Point
'Dim p As new com.sun.star.awt.Point
sPath = "F:\Download\"
oSheet = ThisComponent.CurrentController.ActiveSheet
For i=0 To oSheet.DrawPage.getCount()-1
g = oSheet.Drawpage.getByIndex(i)
s = g.getSize()
gp = g.getPosition()
aCell = g.anchor
oConv = ThisComponent.createInstance("com.sun.star.table.CellAddressConversion")
oConv.Address = aCell.getCellAddress
adr = oConv.UserInterfaceRepresentation
saveGraphic(g.Graphic,ConvertToURL(sPath & g.Name & "-" & adr & ".jpg"))
Next
End Sub
Sub saveGraphic(in_obj, out_url)
Dim i(0) As New com.sun.star.beans.PropertyValue
Dim a(1) As New com.sun.star.beans.PropertyValue
Dim p As Object
Dim g As Object
p = createUnoService("com.sun.star.graphic.GraphicProvider")
a(0).Name = "MimeType"
a(0).Value = "image/jpeg"
a(1).Name = "URL"
a(1).Value = out_url
p.storeGraphic(in_obj,a)
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
- xergio
- Messaggi: 315
- Iscritto il: lunedì 15 marzo 2010, 21:54
- Località: Arzignano (Vicenza)
- Contatta:
Re: [Risolto] Esportazione immagini da calc
Grazie mille! Ho fatto un paio di modifiche e pulizia, adesso è così per salvare le immagini con il nome del codice prodotto che si trova nella cella a dx e per ciclare tutti i fogli:
Codice: Seleziona tutto
Sub ExportImages
sPath = "/home/sergio/customer/Pictures/"
oDoc = ThisComponent
For s=0 To oDoc.Sheets.getCount()-1
oSheet = oDoc.Sheets.getByIndex(s)
For i=0 To oSheet.DrawPage.getCount()-1
oGraphic = oSheet.Drawpage.getByIndex(i)
oCell = oSheet.getCellRangeByName(oGraphic.getAnchor().AbsoluteName)
address = oCell.CellAddress
oRightCell = oSheet.getCellByPosition(address.Column +1, address.Row, s)
saveGraphic(oGraphic.Graphic, ConvertToURL(sPath & oRightCell.String & ".jpg"))
Next
Next
End Sub
Sub saveGraphic(in_obj, out_url)
Dim a(1) As New com.sun.star.beans.PropertyValue
Dim p As Object
p = createUnoService("com.sun.star.graphic.GraphicProvider")
a(0).Name = "MimeType"
a(0).Value = "image/jpeg"
a(1).Name = "URL"
a(1).Value = out_url
p.storeGraphic(in_obj,a)
End Sub
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
Re: [Risolto] Esportazione immagini da calc
Mi sembra che la ruggine sia andata subito via, ottimo lavoro
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta