ciao Patel,
grazie innanzitutto dell'
attenzione!
patel ha scritto:Non ho capito cosa c'entra in questa discussione il primo file allegato che è un file di writer salvato in ods.
Il punto cruciale è proprio quello forse.
Il primo file che ho fatto fa dei calcoli e crea n fogli (che sono appunto quelle tabelle, primo file) e, se decido di falro, di quei fogli, selezionando un flag, lui li salva su una directory con un nome che imposto in un pannello.
La tabella che allego è il formato di output salvato dalla macro di un programma in Calc (non ho mai utilizzato writer!). Per fare questo nel programma, richiamo una funzione che ti riporto qui sotto.
Codice: Seleziona tutto
function salva_foglio_tabella_ods(riga_data)
oDoc=thiscomponent
oSheets = oDoc.Sheets()
aSheetNames = oSheets.getElementNames()
oSheet = oSheets.getByName("Date")
oCell = oSheet.getCellByposition(16,riga_data) 'leggi la cella con il path dove salvare il file
cFolder = oCell.getString() ' inserisci il valore nella variabile cFolder
oCell = oSheet.getCellByposition(15,riga_data) 'leggi la cella con il nome file dove salvare il file
cFile = oCell.getString() ' inserisci il valore nella variabile cFile
cFile = Replace(cFile, " ", "_")
'msgbox("riga= " & riga_data & "CFile= " & CFile & "CFolder= " & CFolder)
if prima_volta=0 then
Dim args(2) as new com.sun.star.beans.PropertyValue
else
prima volta=1
end if
cFilterOptions = ",0,0,1,2/2/2/2/2/2/2/9/9/9/9/9/9/9/9/9/9"
oDoc = ThisComponent
oSheet = oDoc.Sheets.getbyname(cFile)
oDoc.currentcontroller.activesheet = oSheet
args(0).Name = "FilterName"
args(0).Value = "Text - txt - csv (StarCalc)"
args(1).Name = "FilterOptions"
args(1).Value = cFilterOptions
oDoc.StoreToURL( ConvertToUrl( cFolder + cFile + ".ods" ), args() )
'msgbox ("Il file con nome (" & cFile & ") è stato salvato in " & cFolder )
End function
Utilizzo questa funzione passando semplicemente come parametro la riga della data (prima colonna in un pannello) che desidero stampare, che serve a determinare semplicemente dove leggere sullo stesso pannello alla data riga su due colonne successive, il nome del file ed il percorso in cui salvare che io imposto.
Dalla tua osservazione capisco che molto probabilmente il problema sta tutto nel salvataggio che faccio.
Magari se riesco a salvare quei file in maniera corretta dall'inizio, allora posso evitare i problemi successivi.
Presumo che il problema sia nelle linee
Codice: Seleziona tutto
cFilterOptions = ",0,0,1,2/2/2/2/2/2/2/9/9/9/9/9/9/9/9/9/9"
e
Le ho copiate da altre macro che ho trovato su questo forum, e non riesco a trovare sulla documentazione di OO come cambiare questi attributi.
patel ha scritto:Passando al secondo argomento dovresti allegare un paio di file da caricare per provare la macro
Guarda.. ti allego i due file di output che escono quando lancio la routine sopra:
Mentre ti allego gli stessi che ottengo se faccio un semplice copia e incolla di quegli stessi fogli in file singoli esterni (diventano Untitled1 e 2) e salvo tranquillamente da dentro ODS con il pulsante del menu normale.
- T1.ods
- (12.19 KiB) Scaricato 184 volte
- T1.ods
- (12.19 KiB) Scaricato 184 volte
che presumo sarebbero il formato giusto su cui lavorare con il file aggregatore del post senza avere problemi..
grazie
Alf