Cách đọc và nhập tệp .csv trong groovy trên grails. Tôi có tệp .csv với dữ liệu và
cần nhập vào db bằng giao diện người dùng.Tệp Groovy tải .csv
Trả lời
Luôn có các khả năng khác nhau để làm việc với tệp CSV trong Groovy.
Khi Groovy hoàn toàn tương thích với Java, bạn có thể sử dụng một trong các thanh công cụ CSV hiện có, ví dụ: OpenCSV.
Tùy thuộc vào sự phức tạp của tệp CSV mà bạn đang sử dụng, bạn cũng có thể sử dụng các khả năng xử lý tập tin/chuỗi tiêu chuẩn của Groovy:
def sql = Sql.newInstance("jdbc:mysql://localhost:3306/mydb",
"user", "pswd", "com.mysql.jdbc.Driver")
def people = sql.dataSet("PERSON")
new File("users.csv").splitEachLine(",") {fields ->
people.add(
first_name: fields[0],
last_name: fields[1],
email: fields[2]
)
}
EDIT: Kelly Robinson chỉ viết một đẹp blog post về các khả năng khác nhau có sẵn để làm việc với các tệp CSV trong Groovy.
EDIT # 2: Như Leonard Axelsson recently released version 1.0 của thư viện GroovyCVS của mình, tôi nghĩ rằng tôi chắc chắn nên thêm video này vào danh sách tùy chọn.
Với Apache Commons-CSV:
@Grab ('org.apache.commons: commons-csv: 1.2') nhập khẩu org.apache.commons.csv.CSVParser nhập khẩu org.apache.commons.csv tĩnh. CSVFormat. *
@Grab('org.apache.commons:commons-csv:1.2')
import org.apache.commons.csv.CSVParser
import static org.apache.commons.csv.CSVFormat.*
import java.nio.file.Paths
Paths.get('countryInfo.txt').withReader { reader ->
CSVParser csv = new CSVParser(reader, DEFAULT.withHeader())
for (record in csv.iterator()) {
println record.dump()
}
}
Commons-CSV có API tốt và tôi khuyên bạn nên sử dụng.
Với GroovyCSV:
@Grab('com.xlson.groovycsv:groovycsv:0.2')
import com.xlson.groovycsv.CsvParser
def csv = '''Name,Lastname
Mark,Andersson
Pete,Hansen'''
def data = new CsvParser().parse(csv)
for(line in data) {
println "$line.Name $line.Lastname"
}
(Taken từ các mẫu của nó)
khu nghỉ mát cuối: biểu hiện thường xuyên.
Đây là cách tôi phân tích một tập tin mà might contain a quoted escaped string in it's fourth column:
File detailedStatsFile = new File("stats.csv");
detailedStatsFile.eachLine { line, number ->
// Number Of Executions, Total Milliseconds, Milliseconds per execution, "Type"
def match = line =~ /([^,]*?),\s*([^,]*?),\s*([^,]*?),\s*(?:([^",]+)|(?:"((?:[^\\"]++(?:\\")?)++)"))$/; //"
if (!match.matches())
continue;
def numberOfExecs = Integer.valueOf(match.group(1));
def totalMillis = Integer.valueOf(match.group(2));
def detailedStatName = match.group(4);
if (detailedStatName == null)
detailedStatName = match.group(5).replaceAll('\\"','"');
Phương thức đầu tiên không thành công với 'groovy.lang.MissingMethodException: Không có chữ ký của phương thức: sun.nio.fs.UnixPath.withReader() được áp dụng cho các kiểu đối số: (myscript $ _run_closure1) values: [myscript $ _run_closure1 @ 536f2a7e] ' –
Sử dụng xlson của GroovyCSV:
@Grab('com.xlson.groovycsv:groovycsv:1.1')
import static com.xlson.groovycsv.CsvParser.parseCsv
for(line in parseCsv(new FileReader('countries.csv'), separator: ';')) {
println "Country=$line.COUNTRY, Capital=$line.CAPITAL"
}
Trường tên được lấy từ tiêu đề của tập tin CSV.
Nếu tệp CSV không có tiêu đề, bạn có thể chỉ định tên trường theo lập trình.
Ví dụ sử dụng opencsv
@Grab ('com.opencsv: opencsv: 4,0') nhập khẩu com.opencsv.CSVReader nhập khẩu com.opencsv.CSVWriter
class TestCsvReader {
static main(args) {
def csv = '''"a","b","c"
"d","e","f"
'''
def Reader csvFileReader = new StringReader(csv)
def Writer csvFileWriter = new PrintWriter(System.out)
def CSVReader reader = new CSVReader(csvFileReader)
def CSVWriter writer = new CSVWriter(csvFileWriter)
reader.iterator().each { fields ->
writer.writeNext(fields)
}
reader.close()
writer.close()
}
}
- 1. Tải xuống Tệp CSV
- 2. Tải xuống tệp csv trong django
- 3. Tải các tệp CSV vào MySQL Workbench
- 4. Cách tải tệp .csv thành R?
- 5. Đang tải tệp csv vào jQuery?
- 6. Tải lên tệp csv có định dạng cố định
- 7. Tải xuống tệp CSV bằng cách sử dụng JSF
- 8. Làm cách nào để buộc grails tải xuống tệp csv?
- 9. Bắt lỗi Loại khi mở Tệp CSV đã tải lên
- 10. Cách tải xuống tệp csv đã xuất trong Wordpress
- 11. django tải xuống tệp csv bằng liên kết
- 12. Tải xuống tệp CSV bị bỏ qua trong ie8/9
- 13. Tải xuống tệp CSV bằng cách sử dụng "AJAX"
- 14. CSV tải về Chrome - Lỗi: MIME loại text/csv
- 15. Tải xuống CSV dưới dạng HTM
- 16. Nhập Tệp CSV vào Java
- 17. Tạo và tải xuống CSV với PHP
- 18. API Java/Groovy để tạo các tệp nguồn Groovy
- 19. Đuôi một tệp trong Groovy
- 20. Sử dụng javascript để tải xuống tệp dưới dạng tệp .csv
- 21. hình ảnh tải về Groovy từ URL
- 22. Nối hàng vào tệp csv Ruby 1,9 CSV lib
- 23. nhập tệp CSV vào phpmyadmin
- 24. Đọc tệp CSV bằng .NET?
- 25. Đọc tệp .csv trong php
- 26. các tệp mmap và csv
- 27. Tạo tệp csv bằng php
- 28. Tạo tệp CSV trong ASP.Net
- 29. Java: Tệp CSV đọc & ghi
- 30. Viết tệp CSV bằng .net
Tôi đã viết một groovified trình bao bọc xung quanh OpenCSV được gọi là GroovyCSV và làm việc với csv trong Groovy dễ dàng hơn và thành ngữ hơn. Nó có sẵn tại http: // xlson.com/groovycsv/ – xlson