CSV
Elaborare file PDF personalizzati.
Introduzione
Netuno genera file CSV tramite la risorsa CSV che consente un'astrazione low-code di Apache Commons CSV per i vari linguaggi di programmazione supportati da Netuno.
L'applicazione fornita con Netuno denominata demo (applicazione dimostrativa) contiene molti esempi delle possibili implementazioni di codice in vari linguaggi, inclusa la dimostrazione dell'esportazione in CSV tramite il servizio csv che si trova in:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
netuno/apps/demo/server/services/samples/javascript/csv.js
netuno/apps/demo/server/services/samples/typescript/csv.ts
netuno/apps/demo/server/services/samples/python/csv.py
netuno/apps/demo/server/services/samples/ruby/csv.rb
netuno/apps/demo/server/services/samples/kotlin/csv.kts
netuno/apps/demo/server/services/samples/groovy/csv.groovy
Creare un file CSV
Per creare un file CSV è innanzitutto necessario inizializzare un CSVPrinter di Apache Commons CSV.
Per farlo dobbiamo passare il nome della cartella e il nome del file, nonché il formato del CSV.
Nell'esempio, genereremo il file all'interno dello storage dell'applicazione:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const stampanteCsv = _csv.printer(
_storage.filesystem("server", "dati.csv"),
_csv.format("EXCEL")
)
const stampanteCsv = _csv.printer(
_storage.filesystem("server", "dati.csv"),
_csv.format("EXCEL")
)
stampante_csv = _csv.printer(
_storage.filesystem("server", "dati.csv"),
_csv.format("EXCEL")
)
stampante_csv = _csv.printer(
_storage.filesystem("server", "dati.csv"),
_csv.format("EXCEL")
)
val stampanteCsv = _csv.printer(
_storage.filesystem("server", "dati.csv"),
_csv.format("EXCEL")
)
def stampanteCsv = _csv.printer(
_storage.filesystem("server", "dati.csv"),
_csv.format("EXCEL")
)
I formati supportati sono descritti qui.
Scrittura
Per scrivere righe nel file CSV:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
stampanteCsv.printRecord("id", "nomeUtente", "nome", "cognome", "dataNascita")
stampanteCsv.printRecord(1, "mario73", "Mario", "Rossi", 123)
stampanteCsv.printRecord("id", "nomeUtente", "nome", "cognome", "dataNascita")
stampanteCsv.printRecord(1, "mario73", "Mario", "Rossi", 123)
stampanteCsv.printRecord("id", "nomeUtente", "nome", "cognome", "dataNascita")
stampanteCsv.printRecord(1, "mario73", "Mario", "Rossi", 123)
stampanteCsv.printRecord("id", "nomeUtente", "nome", "cognome", "dataNascita")
stampanteCsv.printRecord(1, "mario73", "Mario", "Rossi", 123)
stampanteCsv.printRecord("id", "nomeUtente", "nome", "cognome", "dataNascita")
stampanteCsv.printRecord(1, "mario73", "Mario", "Rossi", 123)
stampanteCsv.printRecord("id", "nomeUtente", "nome", "cognome", "dataNascita")
stampanteCsv.printRecord(1, "mario73", "Mario", "Rossi", 123)
Chiusura
Alla fine è necessario chiudere il CSVPrinter:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
stampanteCsv.close()
stampanteCsv.close()
stampanteCsv.close()
stampanteCsv.close()
stampanteCsv.close()
stampanteCsv.close()
Leggere un file CSV
Per leggere un file CSV è innanzitutto necessario inizializzare un CSVParser di Apache Commons CSV.
Per farlo dobbiamo passare il nome della cartella e il nome del file.
Nell'esempio, leggeremo il file all'interno dello storage dell'applicazione:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const parserCsv = _csv.parser(_storage.filesystem("server", "dati.csv"))
const parserCsv = _csv.parser(_storage.filesystem("server", "dati.csv"))
parserCsv = _csv.parser(_storage.filesystem("server", "dati.csv"))
parserCsv = _csv.parser(_storage.filesystem("server", "dati.csv"))
val parserCsv = _csv.parser(_storage.filesystem("server", "dati.csv"))
final parserCsv = _csv.parser(_storage.filesystem("server", "dati.csv"))
Righe
Ora è possibile iterare sui CSVRecord di Apache Commons CSV, che rappresentano ciascuna riga del file CSV:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
for (const riga of parserCsv) {
const colonnaUno = riga.get(0)
const colonnaDue = riga.get(1)
}
for (const riga of parserCsv) {
const colonnaUno = riga.get(0)
const colonnaDue = riga.get(1)
}
for riga in parserCsv:
colonnaUno = riga.get(0)
colonnaDue = riga.get(1)
parserCsv.each do |riga|
colonnaUno = riga.get(0)
colonnaDue = riga.get(1)
end
for (riga in parserCsv) {
val colonnaUno = riga.get(0)
val colonnaDue = riga.get(1)
}
for (riga in parserCsv) {
def colonnaUno = riga.get(0)
def colonnaDue = riga.get(1)
}
Oppure ottenere ciascuna riga con il metodo getRecord di Apache Commons CSV.
In questo esempio, il primo get recupera la prima riga. Il secondo get recupera il primo campo/valore di quella riga:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
parserCsv.getRecords().get(0).get(0)
parserCsv.getRecords().get(0).get(0)
parserCsv.getRecords().get(0).get(0)
parserCsv.getRecords().get(0).get(0)
parserCsv.getRecords().get(0).get(0)
parserCsv.getRecords().get(0).get(0)
Chiusura
Alla fine è necessario chiudere il CSVParser:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
parserCsv.close()
parserCsv.close()
parserCsv.close()
parserCsv.close()
parserCsv.close()
parserCsv.close()