CSV
Processar arquivos PDF customizados.
Introdução
O Netuno gera arquivos CSV através do recurso CSV que permite uma abstração low-code do Apache Commons CSV para as diversas linguagens de programação suportadas pelo Netuno.
A aplicação que vem com o Netuno denominada demo (aplicação de demonstração) contém bastantes exemplos das possíveis implementações de código em várias linguagens, incluindo a demonstração da exportação para CSV através do serviço csv que se localiza em:
- JavaScript
- Python
- Ruby
- Kotlin
- Groovy
netuno/apps/demo/server/services/samples/javascript/csv.js
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
Criar um arquivo CSV
Para criar um arquivo CSV primeiro é preciso inicializar um CSVPrinter do Apache Commons CSV.
Para isso precisamos passar o nome da pasta e o nome do arquivo, assim como o formato do CSV.
No exemplo, vamos gerar o arquivo dentro do storage da aplicação:
- JavaScript
- Python
- Ruby
- Kotlin
- Groovy
const csvPrinter = _csv.printer(
_storage.filesystem("server", "data.csv"),
_csv.format("EXCEL")
)
csv_printer = _csv.printer(
_storage.filesystem("server", "data.csv"),
_csv.format("EXCEL")
)
csv_printer = _csv.printer(
_storage.filesystem("server", "data.csv"),
_csv.format("EXCEL")
)
val csvPrinter = _csv.printer(
_storage.filesystem("server", "data.csv"),
_csv.format("EXCEL")
)
def csvPrinter = _csv.printer(
_storage.filesystem("server", "data.csv"),
_csv.format("EXCEL")
)
Os formatos suportados estão descritos aqui.
Escrevendo
Para escrever uma linhas no arquivo CSV:
- JavaScript
- Python
- Ruby
- Kotlin
- Groovy
csvPrinter.printRecord("id", "userName", "firstName", "lastName", "birthday")
csvPrinter.printRecord(1, "john73", "John", "Doe", 123)
csvPrinter.printRecord("id", "userName", "firstName", "lastName", "birthday")
csvPrinter.printRecord(1, "john73", "John", "Doe", 123)
csvPrinter.printRecord("id", "userName", "firstName", "lastName", "birthday")
csvPrinter.printRecord(1, "john73", "John", "Doe", 123)
csvPrinter.printRecord("id", "userName", "firstName", "lastName", "birthday")
csvPrinter.printRecord(1, "john73", "John", "Doe", 123)
csvPrinter.printRecord("id", "userName", "firstName", "lastName", "birthday")
csvPrinter.printRecord(1, "john73", "John", "Doe", 123)
Fechando
Ao final é necessário fechar o CSVPrinter:
- JavaScript
- Python
- Ruby
- Kotlin
- Groovy
csvPrinter.close()
csvPrinter.close()
csvPrinter.close()
csvPrinter.close()
csvPrinter.close()
Ler um arquivo CSV
Para ler um arquivo CSV primeiro é preciso inicializar um CSVParser do Apache Commons CSV.
Para isso precisamos passar o nome da pasta e o nome do arquivo.
No exemplo, vamos ler o arquivo dentro do storage da aplicação:
- JavaScript
- Python
- Ruby
- Kotlin
- Groovy
const csvParser = _csv.parser(_storage.filesystem("server", "data.csv"))
const csvParser = _csv.parser(_storage.filesystem("server", "data.csv"))
const csvParser = _csv.parser(_storage.filesystem("server", "data.csv"))
const csvParser = _csv.parser(_storage.filesystem("server", "data.csv"))
const csvParser = _csv.parser(_storage.filesystem("server", "data.csv"))
Linhas
Agora é possível iterar sobre os CSVRecord do Apache Commons CSV, que representam cada linha do arquivo CSV:
- JavaScript
- Python
- Ruby
- Kotlin
- Groovy
for (const record of csvParser) {
const columnOne = record.get(0)
const columnTwo = record.get(1)
}
for record in csvParser:
columnOne = record.get(0)
columnTwo = record.get(1)
csvParser.each do |record|
columnOne = record.get(0)
columnTwo = record.get(1)
end
for (record in csvParser) {
val columnOne = record.get(0)
val columnTwo = record.get(1)
}
for (record in csvParser) {
def columnOne = record.get(0)
def columnTwo = record.get(1)
}
Ou pegar cada linha com o método getRecord do Apache Commons CSV.
Nesse exemplo, o primeiro get pega a primeira linha. O segundo get pega o primeiro campo/valor dessa linha:
- JavaScript
- Python
- Ruby
- Kotlin
- Groovy
csvParser.getRecords().get(0).get(0)
csvParser.getRecords().get(0).get(0)
csvParser.getRecords().get(0).get(0)
csvParser.getRecords().get(0).get(0)
csvParser.getRecords().get(0).get(0)
Fechando
Ao final é necessário fechar o CSVParser:
- JavaScript
- Python
- Ruby
- Kotlin
- Groovy
csvParser.close()
csvParser.close()
csvParser.close()
csvParser.close()
csvParser.close()