CSV
Procesar archivos PDF personalizados.
Introducción
Netuno genera archivos CSV mediante el recurso CSV, que permite una abstracción low-code de Apache Commons CSV para los distintos lenguajes de programación compatibles con Netuno.
La aplicación que viene con Netuno denominada demo (aplicación de demostración) contiene bastantes ejemplos de las posibles implementaciones de código en varios lenguajes, incluida la demostración de la exportación a CSV mediante el servicio csv que se encuentra en:
- 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
Crear un archivo CSV
Para crear un archivo CSV primero es necesario inicializar un CSVPrinter de Apache Commons CSV.
Para ello necesitamos pasar el nombre de la carpeta y el nombre del archivo, así como el formato del CSV.
En el ejemplo, vamos a generar el archivo dentro del storage de la aplicación:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const impresoraCsv = _csv.printer(
_storage.filesystem("server", "datos.csv"),
_csv.format("EXCEL")
)
const impresoraCsv = _csv.printer(
_storage.filesystem("server", "datos.csv"),
_csv.format("EXCEL")
)
impresora_csv = _csv.printer(
_storage.filesystem("server", "datos.csv"),
_csv.format("EXCEL")
)
impresora_csv = _csv.printer(
_storage.filesystem("server", "datos.csv"),
_csv.format("EXCEL")
)
val impresoraCsv = _csv.printer(
_storage.filesystem("server", "datos.csv"),
_csv.format("EXCEL")
)
def impresoraCsv = _csv.printer(
_storage.filesystem("server", "datos.csv"),
_csv.format("EXCEL")
)
Los formatos compatibles se describen aquí.
Escribiendo
Para escribir líneas en el archivo CSV:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
impresoraCsv.printRecord("id", "nombreUsuario", "nombre", "apellido", "fechaNacimiento")
impresoraCsv.printRecord(1, "juan73", "Juan", "Pérez", 123)
impresoraCsv.printRecord("id", "nombreUsuario", "nombre", "apellido", "fechaNacimiento")
impresoraCsv.printRecord(1, "juan73", "Juan", "Pérez", 123)
impresoraCsv.printRecord("id", "nombreUsuario", "nombre", "apellido", "fechaNacimiento")
impresoraCsv.printRecord(1, "juan73", "Juan", "Pérez", 123)
impresoraCsv.printRecord("id", "nombreUsuario", "nombre", "apellido", "fechaNacimiento")
impresoraCsv.printRecord(1, "juan73", "Juan", "Pérez", 123)
impresoraCsv.printRecord("id", "nombreUsuario", "nombre", "apellido", "fechaNacimiento")
impresoraCsv.printRecord(1, "juan73", "Juan", "Pérez", 123)
impresoraCsv.printRecord("id", "nombreUsuario", "nombre", "apellido", "fechaNacimiento")
impresoraCsv.printRecord(1, "juan73", "Juan", "Pérez", 123)
Cerrando
Al final es necesario cerrar el CSVPrinter:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
impresoraCsv.close()
impresoraCsv.close()
impresoraCsv.close()
impresoraCsv.close()
impresoraCsv.close()
impresoraCsv.close()
Leer un archivo CSV
Para leer un archivo CSV primero es necesario inicializar un CSVParser de Apache Commons CSV.
Para ello necesitamos pasar el nombre de la carpeta y el nombre del archivo.
En el ejemplo, vamos a leer el archivo dentro del storage de la aplicación:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const analizadorCsv = _csv.parser(_storage.filesystem("server", "datos.csv"))
const analizadorCsv = _csv.parser(_storage.filesystem("server", "datos.csv"))
analizadorCsv = _csv.parser(_storage.filesystem("server", "datos.csv"))
analizadorCsv = _csv.parser(_storage.filesystem("server", "datos.csv"))
val analizadorCsv = _csv.parser(_storage.filesystem("server", "datos.csv"))
final analizadorCsv = _csv.parser(_storage.filesystem("server", "datos.csv"))
Líneas
Ahora es posible iterar sobre los CSVRecord de Apache Commons CSV, que representan cada línea del archivo CSV:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
for (const registro of analizadorCsv) {
const columnaUno = registro.get(0)
const columnaDos = registro.get(1)
}
for (const registro of analizadorCsv) {
const columnaUno = registro.get(0)
const columnaDos = registro.get(1)
}
for registro in analizador_csv:
columnaUno = registro.get(0)
columnaDos = registro.get(1)
analizador_csv.each do |registro|
columnaUno = registro.get(0)
columnaDos = registro.get(1)
end
for (registro in analizadorCsv) {
val columnaUno = registro.get(0)
val columnaDos = registro.get(1)
}
for (registro in analizadorCsv) {
def columnaUno = registro.get(0)
def columnaDos = registro.get(1)
}
O tomar cada línea con el método getRecord de Apache Commons CSV.
En este ejemplo, el primer get toma la primera línea. El segundo get toma el primer campo/valor de esa línea:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
analizadorCsv.getRecords().get(0).get(0)
analizadorCsv.getRecords().get(0).get(0)
analizadorCsv.getRecords().get(0).get(0)
analizadorCsv.getRecords().get(0).get(0)
analizadorCsv.getRecords().get(0).get(0)
analizadorCsv.getRecords().get(0).get(0)
Cerrando
Al final es necesario cerrar el CSVParser:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
analizadorCsv.close()
analizadorCsv.close()
analizadorCsv.close()
analizadorCsv.close()
analizadorCsv.close()
analizadorCsv.close()