Leggere una cella da un altro documento

Creare una macro - Scrivere uno script - Usare le API
Rispondi
ilkappa
Messaggi: 39
Iscritto il: mercoledì 1 febbraio 2017, 12:52

Leggere una cella da un altro documento

Messaggio da ilkappa »

Ciao A tutti.
La domanda è piuttosto semplice e racchiusa nel titolo. Come mi riferisco ad un altro documento aperto nelle macro?

se thisComponent fa riferimento al documento che sto utilizzando ed al quale posso poi accedere a sheets ecc..
se volessi accedere ad un altro documento (aperto o chiuso cambia?) come posso fare?
Mi serve per creare un range (ma quello lo so fare).

Ho provato con

Codice: Seleziona tutto

eDoc = convertToUrl("file:///volumes/xxx.ods")
eDoc.Sheets.count
ed accedere per contare i fogli (giusto per vedere se riesco) ma non funziona

Sapete aiutarmi?
Ultima modifica di charlie il giovedì 18 giugno 2020, 12:31, modificato 1 volta in totale.
Motivazione: Argomento spostato
OpenOffice 3.1 su Ubuntu 16.04
geovign
Messaggi: 215
Iscritto il: domenica 13 gennaio 2019, 11:19
Località: Modena

Re: Leggere una cella da un altro documento

Messaggio da geovign »

Ciao @ilkappa.
Per operare su di un secondo documento, questo deve essere aperto.
Per aprirlo si utilizza

Codice: Seleziona tutto

dim PercorsoSecondoFile as string
dim UrlSecondoFile as string
dim eDoc as object
dim Dummy()
PercorsoSecondoFile = "percorso_del_file/xxx.ods"
UrlSecondoFile = convertToUrl(PercorsoSecondoFile)
eDoc = StarDesktop.loadComponentFromURL(UrlSecondoFile, "_blank", 0,Dummy())
"file:///volumes/xxx.ods" è già URL quindi non bisogna utilizzare "ConvertToUrl" . Nel tuo caso, sistemi GNU/Linux, utilizza, ad esempio, "/home/pippo/xxx.ods" .
Quindi puoi operare sul secondo documento facendo riferimento a "eDoc"

Codice: Seleziona tutto

dim NumerofogliSecondoFile as integer
NumeroFogliSecondoFile = eDoc.Sheets.Count
LibO 7 su LinuxMint 21
ilkappa
Messaggi: 39
Iscritto il: mercoledì 1 febbraio 2017, 12:52

Re: Leggere una cella da un altro documento

Messaggio da ilkappa »

Ciao @geovign
grazie per la risposta.
Avevo gia provato anche questa soluzione purtroppo mi apre, per ogni esecuzione della macro una nuova istanza del documento, benchè questo sia gia aperto prima ancora di eseguire la macro.
OpenOffice 3.1 su Ubuntu 16.04
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Leggere una cella da un altro documento

Messaggio da patel »

eDoc = StarDesktop.loadComponentFromURL(UrlSecondoFile, "_default", 0,Dummy())
-------------------
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
geovign
Messaggi: 215
Iscritto il: domenica 13 gennaio 2019, 11:19
Località: Modena

Re: Leggere una cella da un altro documento

Messaggio da geovign »

@patel
Conviene usare sempre "_default" al posto di "_blank" ?
Nel caso di apertura di un nuovo documento non ho visto differenze tra i due; quando usare allora "_blank"?
Saluti
Geo
LibO 7 su LinuxMint 21
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Leggere una cella da un altro documento

Messaggio da patel »

Ciao, non so rispondere, da ora in poi userò _default
-------------------
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
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2996
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Leggere una cella da un altro documento

Messaggio da lucky63 »

geovign ha scritto:Conviene usare sempre "_default" al posto di "_blank" ?
Nel caso di apertura di un nuovo documento non ho visto differenze tra i due; quando usare allora "_blank"?
.
Vedi questo link
.
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Leggere una cella da un altro documento

Messaggio da patel »

grazie lucky
-------------------
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
geovign
Messaggi: 215
Iscritto il: domenica 13 gennaio 2019, 11:19
Località: Modena

Re: Leggere una cella da un altro documento

Messaggio da geovign »

Scusate la risposta tardiva, ma ero impegnato con raccolta frutta...
Grazie @lucky63.
Non riesco a capire la seconda parte della spiegazione: "_default" (... ,using of empty frames of creating of new top frames as fallback).
Riuscite a darmi una traduzione con parole semplici?
Saluti
Geo
LibO 7 su LinuxMint 21
Rispondi