Ciao a tutti,
qualcuno mi sa dire se di un documento .ods è possibile salvare in CSV solo alcune righe selezionate e non l'intero documento?
Attualmente salvo un unico csv poi lo apro da blocco note e lo salvo in diversi csv ma vorrei automatizzare l'operazione.
Grazie a chi mi potrà aiutare
Aluc
Esportazione CSV solo righe selezionate
Esportazione CSV solo righe selezionate
Open Office4 .1.6
Windows 10
Windows 10
Re: Esportazione CSV solo righe selezionate
Si può fare con una macro, ad esempio questa
Codice: Seleziona tutto
Sub CsvSave
Doc = ThisComponent
oSheet=thiscomponent.getcurrentcontroller.activesheet
oRange = Doc.getCurrentSelection()
startcol= oRange.RangeAddress.StartColumn
endcol= oRange.RangeAddress.EndColumn
startrow= oRange.RangeAddress.StartRow
endrow= oRange.RangeAddress.EndRow
nomefile="C:\Download\PROVA.csv" ' percorso del file da salvare
n = FreeFile()
Open nomefile For output As #n
for row=startrow to endrow
oText = ""
for col=startcol to endcol
CellText = oSheet.getCellByPosition(col, row).String
if col = endcol then
oText =oText & CellText
else
oText =oText & CellText & ";" ' separatore può essere anche virgola
end if
next
print #n, oText
next
Close #n
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: Esportazione CSV solo righe selezionate
Una piccola nota ovvia:
la macro non funzionerà per la selezione non contigua.
la macro non funzionerà per la selezione non contigua.
OpenOffice 4.1.14, LibreOffice 7.2.7.2 & 7.4.6.2
Windows 7,10,11
Windows 7,10,11
Re: Esportazione CSV solo righe selezionate
La macro funziona perfettamente se si fa un'unico salvataggio in csv, se si ripete l'esecuzione della macro questa sovrascrive il file precedente salvando sempre come prova.csv
Servirebbe dunque che potessero essere salvati files con nomi progressivi es: prova1.csv, prova2.csv, prova3.csv ecc. senza che siano sovrascritti , questo perchè dello stesso documento devo fare diverse selezioni e salvare diversi csv.
E' possibile?
Grazie per il tuo aiuto
Servirebbe dunque che potessero essere salvati files con nomi progressivi es: prova1.csv, prova2.csv, prova3.csv ecc. senza che siano sovrascritti , questo perchè dello stesso documento devo fare diverse selezioni e salvare diversi csv.
E' possibile?
Grazie per il tuo aiuto
Open Office4 .1.6
Windows 10
Windows 10
Re: Esportazione CSV solo righe selezionate
Puoi dedicare una cella al numero progressivo ? se sì
Codice: Seleziona tutto
Sub CsvSave2
Doc = ThisComponent
oSheet=thiscomponent.getcurrentcontroller.activesheet
oRange = Doc.getCurrentSelection()
startcol= oRange.RangeAddress.StartColumn
endcol= oRange.RangeAddress.EndColumn
startrow= oRange.RangeAddress.StartRow
endrow= oRange.RangeAddress.EndRow
filenum= oSheet.getCellRangeByName("K1").value 'K1 cella di servizio
fpath="C:\Download\"
nomefile=fpath & "PROVA" & filenum & ".csv"
n = FreeFile()
Open nomefile For output As #n
for row=startrow to endrow
oText = ""
for col=startcol to endcol
CellText = oSheet.getCellByPosition(col, row).String
if col = endcol then
oText =oText & CellText
else
oText =oText & CellText & ";"
end if
next
print #n, oText
next
oSheet.getCellRangeByName("K1").value = filenum + 1
Close #n
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: Esportazione CSV solo righe selezionate
Si può fare anche in caso di selezione non contigua, ma se non serve è inutile complicare il codice.
-------------------
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: Esportazione CSV solo righe selezionate
La macro funziona perfettamente, non mi serve la seleziona non contigua ma mi sarebbe utile però che nel salvataggio dei vari CSV fosse presente sempre la riga 1 perchè ci sono le intestazioni dei nomi delle colonne, se è complesso aggiungerlo alla macro lo incollo a mano.
Grazie per il tuo aiuto
Grazie per il tuo aiuto
Open Office4 .1.6
Windows 10
Windows 10