[Risolto] - Visualizzare immagini esterne
[Risolto] - Visualizzare immagini esterne
Ciao a tutti
Una domanda veloce voloce, d'altrone mi sono iscritto per questo:
è possibile visualizzare in un foglio calc delle immagini relative ad un... indirizzo locale, inserito o generato in una cella?
Ho un foglio chiamato Listino contenente circa 5000 record ogni uno relativo ad un prodotti differente.
Da un secondo foglio di volta in volta richiamo dai 3 ai 18 articoli di questo listino e vorrei, oltre ai dati che recupero, visualizzare la foto di questo prodotto. Foto presente in una cartella insieme a tutte le altre.
Grazie
Dimenticavo. Se farlo con Calc non è possibile, mi suggerite un sistema (in parallelo lo sto facendo con Python e Kivy per farlo andare su Android)
Una domanda veloce voloce, d'altrone mi sono iscritto per questo:
è possibile visualizzare in un foglio calc delle immagini relative ad un... indirizzo locale, inserito o generato in una cella?
Ho un foglio chiamato Listino contenente circa 5000 record ogni uno relativo ad un prodotti differente.
Da un secondo foglio di volta in volta richiamo dai 3 ai 18 articoli di questo listino e vorrei, oltre ai dati che recupero, visualizzare la foto di questo prodotto. Foto presente in una cartella insieme a tutte le altre.
Grazie
Dimenticavo. Se farlo con Calc non è possibile, mi suggerite un sistema (in parallelo lo sto facendo con Python e Kivy per farlo andare su Android)
Ultima modifica di ilkappa il lunedì 6 febbraio 2017, 13:43, modificato 1 volta in totale.
OpenOffice 3.1 su Ubuntu 16.04
Re: Visualizzare immagini esterne
è possibile, ma allega un file di esempio con poche righe e poche foto
-------------------
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
Re: Visualizzare immagini esterne
Sul forum è stato tratto diverse volte questo argomento, hai dato un'occhiata?
Questo ad esempio risale a qualche giorno fà
viewtopic.php?f=9&t=8030
Questo ad esempio risale a qualche giorno fà
viewtopic.php?f=9&t=8030
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Visualizzare immagini esterne
Ciao Gaetano.
In realtà è da un mesetto che cerco, non solo sul forum ma in generale online. O ho cercato male o quello che ho trovato non fa al caso mio.
Adesso controllo il tuo link al limite allego un file come chiesto da Patel
In realtà è da un mesetto che cerco, non solo sul forum ma in generale online. O ho cercato male o quello che ho trovato non fa al caso mio.
Adesso controllo il tuo link al limite allego un file come chiesto da Patel
OpenOffice 3.1 su Ubuntu 16.04
Re: Visualizzare immagini esterne
Ok Grazie Gaetano per il collegamento.
Ipotizzo di dover utilizzare la macro che hai inserito.
Purtroppo sono completamente ignorante per quel che riguarda le macro.
Ho provato a modificarla secondo questo ragionamento:
Sono su un sistema Unix ed ho salvato il file all'interno della cartella Scaricati presente in Home
Quindi dove richiede il convert to url devo inserire l'indirizzo corretto della cartella Scaricati.
creando un immagine chiamata prova.jpg nella cartella Scaricati.
Ora, stando al file scaricato nel 3d precedente, se inserisco un nome nella cella A37, dovrebbe apparire una immagine in a15 giusto?
Il codice seguente e quello postato da te in fondo alla pagina di quell'esempio con la sola modifica indicata sopra.
C'è da eseguire un qualche comando per farla eseguire?
Dovrebbe partire da sola dopo il salvataggio?
Devo salvare il file e riaprirlo?
Oppure sto proprio cannando approccio?
Grazie per la pazienza
P.s. Se fossi cosi gentile da commentarmi alcune righe in modo da capire che fanno posso provare a smanettarci...
Ipotizzo di dover utilizzare la macro che hai inserito.
Purtroppo sono completamente ignorante per quel che riguarda le macro.
Ho provato a modificarla secondo questo ragionamento:
Sono su un sistema Unix ed ho salvato il file all'interno della cartella Scaricati presente in Home
Quindi dove richiede il convert to url devo inserire l'indirizzo corretto della cartella Scaricati.
Codice: Seleziona tutto
ConvertToURL("/home/cas/Scaricati/" & NomeImage & ".jpg")
Ora, stando al file scaricato nel 3d precedente, se inserisco un nome nella cella A37, dovrebbe apparire una immagine in a15 giusto?
Il codice seguente e quello postato da te in fondo alla pagina di quell'esempio con la sola modifica indicata sopra.
C'è da eseguire un qualche comando per farla eseguire?
Dovrebbe partire da sola dopo il salvataggio?
Devo salvare il file e riaprirlo?
Oppure sto proprio cannando approccio?
Codice: Seleziona tutto
Sub Immagine1(Target)
Dim Sh As Object, addr As Object
Dim Doc As Object
Dim Drw As Object, Image As Object, Gp As Object
Dim positionImage As New com.sun.star.awt.Point
Dim props(0) As New com.sun.star.beans.PropertyValue
Doc = ThisComponent
fpath = left(Doc.geturl(),revinstr(Doc.geturl(),"/"))
Sh = Target.getSpreadsheet()
oCellT() = Split(Target.AbsoluteName, ".")
oCellTarget = oCellT(1)
If oCellTarget = "$A$37" Or oCellTarget = "$C$37" Then
If oCellTarget = "$A$37" Then
ITarget = sh.getCellRangeByName("A15") ' serve per le coordinate di inserimento dell'immagine
oCell = "$A$15"
ElseIf oCellTarget = "$C$37" Then
ITarget = sh.getCellRangeByName("D37") ' serve per le coordinate di inserimento dell'immagine
oCell = "$D$37"
End If
NomeImage = Target.String
For s = 0 To 4
Gp = createUnoservice("com.sun.star.graphic.GraphicProvider")
props(0).Name = "URL" ' D:\Users\Gaetano\Desktop\download.png
props(0).Value = ConvertToURL("//" & NomeImage & ".jpg") '("C:\Documents and Settings\Administrator\Desktop\" & NomeImage & ".jpg")
Image=Doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Image.Graphic = Gp.queryGraphic( props() )
' Controllo se è presente l'immagine in archivio
If IsNull(Image.Graphic) Then MsgBox "Immagine non presente in archivio" ': exit sub
' Elimino se presente immagine precedente nella cella di destinazione
Drw = Doc.sheets(s).DrawPage
For i = 0 To Drw.Count - 1
CellaImmagine() = Split(Drw(i).Anchor.AbsoluteName, ".")
If CellaImmagine(1) = oCell Then
Drw.Remove(Drw(i))
Exit For
End If
Next i
' Aggiungo l'immagine
Drw.add(Image)
' Ridimensiono l'immagine
Larg = 5000
resizeImageByWidth(Image,Larg)
positionImage.x = ITarget.position.x
positionImage.y = ITarget.position.y
Image.Position = positionImage
Image.Name = NomeImage
Image.Anchor = Doc.Sheets(s).getCellrangebyname(oCell)
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Next s
End if
End Sub
Sub resizeImageByWidth(ImageCmp As Object, Larg As Long)
Dim imageInfo As Object, Proporzione As Double, SizeImage As Object
imageInfo = ImageCmp.Graphic
SizeImage = imageInfo.SizePixel
Proporzione = SizeImage.Height / SizeImage.Width
SizeImage.Width = Larg
SizeImage.Height = SizeImage.Width * Proporzione
ImageCmp.Size = SizeImage
End Sub
function revinstr(s as string, slash as string) as string
dim ii as integer
ii=0
do
if instr(ii+1,s,slash)=0 then exit do
ii=instr(ii+1,s,slash)
loop
revinstr = ii
end function
P.s. Se fossi cosi gentile da commentarmi alcune righe in modo da capire che fanno posso provare a smanettarci...
OpenOffice 3.1 su Ubuntu 16.04
Re: Visualizzare immagini esterne
questa macro gestisce un evento, occorre cliccare col destro sul tab del foglio, scegliere l'evento e associare la macro.
Se non sei pratico ti conviene allegare il tuo file, ma spiega bene cosa vuoi ottenere.
Con il sistema unix non è necessario usare ConvertToURL e devi usare la / e non la \
Se non sei pratico ti conviene allegare il tuo file, ma spiega bene cosa vuoi ottenere.
Con il sistema unix non è necessario usare ConvertToURL e devi usare la / e non la \
-------------------
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
Re: Visualizzare immagini esterne
Ciao Patel,
allora, ho inserito in allegato un file contenente 3 foglio:
Articoli, in cui io inserisco l'elenco dei miei articoli, (ne ho inseriti alcuni d'esempio)
Ordini, in cui inserisco gli ordini del cliente, è già descritto ma: L'unico valore dinamico vero è il campo descrizione, che viene recuperato tramite un CERCA.VERT dal foglio Articoli
Stampa, questo è il foglio su cui devo lavorare (in pratica un report). Contiene la visualizzazione di tre Ordini, pronti per essere stampati tutti richiamati da una cella A1 nella quale inserisco il riferimento di una cella del foglio Ordini
Nella cella che ho contrassegnato in viola (piu o meno) vorrei apparisse l'immagine dell'articolo ordinato. Il file della foto dell'articolo sarà inserito in una sotto cartella relativa alla root dov'è salvato il file Esempio.ods(in questo caso) quindi tutta la path può essere dichiarata direttamente nella macro (come nell'esempio di macro precedente) tranne appunto il nome del file che è identico al codice articolo (1, 2004, 30013 ecc..).
Spero di essere stato esaustivo. Ti ringrazio.
(avrei anche bisogno di capire, se sei cosi gentile da modificare/creare la macro, come la stessa funziona)
allora, ho inserito in allegato un file contenente 3 foglio:
Articoli, in cui io inserisco l'elenco dei miei articoli, (ne ho inseriti alcuni d'esempio)
Ordini, in cui inserisco gli ordini del cliente, è già descritto ma: L'unico valore dinamico vero è il campo descrizione, che viene recuperato tramite un CERCA.VERT dal foglio Articoli
Stampa, questo è il foglio su cui devo lavorare (in pratica un report). Contiene la visualizzazione di tre Ordini, pronti per essere stampati tutti richiamati da una cella A1 nella quale inserisco il riferimento di una cella del foglio Ordini
Nella cella che ho contrassegnato in viola (piu o meno) vorrei apparisse l'immagine dell'articolo ordinato. Il file della foto dell'articolo sarà inserito in una sotto cartella relativa alla root dov'è salvato il file Esempio.ods(in questo caso) quindi tutta la path può essere dichiarata direttamente nella macro (come nell'esempio di macro precedente) tranne appunto il nome del file che è identico al codice articolo (1, 2004, 30013 ecc..).
Spero di essere stato esaustivo. Ti ringrazio.
(avrei anche bisogno di capire, se sei cosi gentile da modificare/creare la macro, come la stessa funziona)
- Allegati
-
- Esempio.ods
- Esempio di file per inserimento di una immagine nel foglio Stampa
- (34.8 KiB) Scaricato 145 volte
OpenOffice 3.1 su Ubuntu 16.04
Re: Visualizzare immagini esterne
quali nomi hanno le immagini da inserire ? allegami uno zip con quelle dell'esempio
-------------------
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
Re: Visualizzare immagini esterne
Perdonami non ho capito cosa intendi. Tutti gli articoli hanno la relativa loro immagine. Piccola perchè è da 250x250px... con nome come dicevo 1.jpg, 2002.jpg, 20542.jpg ecc..
Questo intendevi?
Questo intendevi?
OpenOffice 3.1 su Ubuntu 16.04
Re: Visualizzare immagini esterne
volevo sapere se le immagini hanno il nome del prodotto o dell'articolo, per colaudare il codice dovresti allegami uno zip con le immagini dell'esempio
comunque prova questa
comunque prova questa
Codice: Seleziona tutto
Sub Immagine1
Dim positionImage As New com.sun.star.awt.Point
Dim props(0) As New com.sun.star.beans.PropertyValue
Doc = ThisComponent
fpath = "file:///nomeutente/home/immagini/" ' <<<<<<<<< da modficare
Sh = Doc.sheets.getByName("Stampa")
for riga = 2 to 22 step 10
articolo = sh.getCellRangeByName("A" & riga + 4).string
p = instr(articolo,"-")
articolo = left(articolo, p - 3)
ITarget = sh.getCellRangeByName("G" & riga)
rowHeight = Sh.Rows(Itarget.CellAddress.Row).Height
colWidth = Sh.Columns(Itarget.CellAddress.Row).Width
' addr = Targ.cellAddress
Drw = Sh.DrawPage
Gp = createUnoservice("com.sun.star.graphic.GraphicProvider")
props(0).Name = "URL"
props(0).Value = fpath & articolo & ".jpg"
Image=Doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Image.Graphic = Gp.queryGraphic( props() )
' Controllo se è presente l'immagine in archivio
If IsNull(Image.Graphic) Then MsgBox "Immagine non presente in archivio" : exit sub
' Aggiungo l'immagine
Drw.add(Image)
' Ridimensiono l'immagine
Larg = 1500
resizeImageByWidth(Image,colWidth,rowHeight)
positionImage.x = ITarget.position.x
positionImage.y = ITarget.position.y
Image.Position = positionImage
Image.Name = NomeImage
next
End Sub
Sub resizeImageByWidth(ImageCmp As Object, Larg As Long, alt as long)
Dim imageInfo As Object, Proporzione As Double, SizeImage As Object
imageInfo = ImageCmp.Graphic
SizeImage = imageInfo.SizePixel
SizeImage.Width = Larg
SizeImage.Height = alt
ImageCmp.Size = SizeImage
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
Re: Visualizzare immagini esterne
Grazie Patel
Ho provato a caricare la macro.. ma non capisco come faccio ad eseguirla (dovrebbe partire automaticamente o devo dare qualche comando particolare)
Ti ho allegato le foto
... nel frattempo ho fatto una prova dando il comando esegui macro e si visualizzano le immagini, richiuse nella cella.
Dovrei capire ora come fare perchè mantengano le proporzioni 1:1 e sopratutto come eseguire la macro.
Chiedo, se non ti è di disturbo, potresti spiegarmi come funziona sommariamente questa macro cosi la studio ed inizio a capirne il funzionamento grazie.
Ho provato a caricare la macro.. ma non capisco come faccio ad eseguirla (dovrebbe partire automaticamente o devo dare qualche comando particolare)
Ti ho allegato le foto
... nel frattempo ho fatto una prova dando il comando esegui macro e si visualizzano le immagini, richiuse nella cella.
Dovrei capire ora come fare perchè mantengano le proporzioni 1:1 e sopratutto come eseguire la macro.
Chiedo, se non ti è di disturbo, potresti spiegarmi come funziona sommariamente questa macro cosi la studio ed inizio a capirne il funzionamento grazie.
- Allegati
-
- esempio.zip
- (27.84 KiB) Scaricato 114 volte
OpenOffice 3.1 su Ubuntu 16.04
Re: Visualizzare immagini esterne
Sono riuscito grossomodo ad interpretare la Macro.
L'ho modificata in modo tale da acquisire l'articolo di riferimento da un'altra cella e ho modificato le dimensioni delle foto caricate. Ora va bene.
Il problema si presenta nel momento in cui copio la macro nel foglio reale, quello che utilizzo.
I problemi in realtà sono due:
1, non è solo su un foglio Stampa che deve funzionare ma su due: Stampa Gruppi e Stama Singolo
2 anche se più importante del punto 1.... NON FUNZIONA!!
L'ho modificata in modo tale da acquisire l'articolo di riferimento da un'altra cella e ho modificato le dimensioni delle foto caricate. Ora va bene.
Il problema si presenta nel momento in cui copio la macro nel foglio reale, quello che utilizzo.
I problemi in realtà sono due:
1, non è solo su un foglio Stampa che deve funzionare ma su due: Stampa Gruppi e Stama Singolo
2 anche se più importante del punto 1.... NON FUNZIONA!!
OpenOffice 3.1 su Ubuntu 16.04
Re: Visualizzare immagini esterne
devi allegare un file significativo se non sei in grado di modificare la macro
-------------------
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
Re: Visualizzare immagini esterne
Non funzionava perchè avevo impostato a livello di sicurezza a MEDIO e le macro funzionavano solo tramite autorizzazione.
Ora ho dovuto impostare la sicurezza su BASSO e la macro è partita
(Domanda su domanda, come posso garantire la sicurezza della macro?)
Ora funziona e devo solo capire come rendere attiva la macro sul foglio in uso...
Ora ho dovuto impostare la sicurezza su BASSO e la macro è partita
(Domanda su domanda, come posso garantire la sicurezza della macro?)
Ora funziona e devo solo capire come rendere attiva la macro sul foglio in uso...
OpenOffice 3.1 su Ubuntu 16.04
Re: Visualizzare immagini esterne
il foglio atttivo lo trovi così
Codice: Seleziona tutto
Doc = thiscomponent
sh = Doc.currentcontroller.getActiveSheet()
print sh.name
-------------------
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
Re: Visualizzare immagini esterne
Grazie
Ora è tutto risolto più o meno.
Ora è tutto risolto più o meno.
OpenOffice 3.1 su Ubuntu 16.04
Re: [Risolto] - Visualizzare immagini esterne
Riapro un attimo questo 3d. per una informazione.
Ore eseguo la macro premendo un pulsante, ma ho visto e fatto diverse prove, potrei tranquillamente attivarla alla modifica del foglio.
La domanda che mi sorge è questa:
le immagini che la macro automaticamente visualizza, come posso eliminarle senza doverlo fare a mano? Mi spiego, volendo attivare la macro alla modifica del foglio, prima di recuperare i dati e visualizzare le immagini, dovrebbe cancellare le eventuali presenti. E' possibile?
Ore eseguo la macro premendo un pulsante, ma ho visto e fatto diverse prove, potrei tranquillamente attivarla alla modifica del foglio.
La domanda che mi sorge è questa:
le immagini che la macro automaticamente visualizza, come posso eliminarle senza doverlo fare a mano? Mi spiego, volendo attivare la macro alla modifica del foglio, prima di recuperare i dati e visualizzare le immagini, dovrebbe cancellare le eventuali presenti. E' possibile?
OpenOffice 3.1 su Ubuntu 16.04
Re: [Risolto] - Visualizzare immagini esterne
usa questa sub
Codice: Seleziona tutto
Sub clearGraphs
oDrawPages = ThisComponent.getDrawPages()
If oDrawPages.hasElements() Then
For i = 0 To oDrawPages.getCount() - 1 REM # For all drawpages in workbook
oDrawPage = oDrawPages.getByIndex(i)
If oDrawPage.hasElements() Then
For j = (oDrawPage.getCount() - 1) To 0 Step -1
oShape = oDrawPage.getByIndex(j)
oDrawPage.remove(oShape)
Next j
EndIf
Next i
EndIf
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
Re: [Risolto] - Visualizzare immagini esterne
Grazie
funziona alla perfezione
funziona alla perfezione
OpenOffice 3.1 su Ubuntu 16.04