我有一个允许用户导入CSV数据的应用程序。
一切正常,直到用户开始导入CSV文件中空白行的数据。我正在使用以下方法从CSV文件中获取行:
CSV.readlines(import_file, headers: true, skip_blanks: true)
我以为,如果我将选项添加到skip_blanks上,它将做到这一点,但事实并非如此。关于如何忽略空白行的任何想法。
谢谢!
这应该工作
CSV.open(import_file, skip_blanks: true).reject { |row| row.all?(&:nil?) }
您请求了读取行,最后它在CSV源代码中调用open,但是就是这样:
CSV.readlines(import_file, skip_blanks: true).reject { |row| row.all?(&:nil?) }
尽管我没有做过基准测试,但我觉得开放会更好
CSV.open(import_file, skip_blanks: true, headers: true).reject { |row| row.to_hash.values.all?(&:nil?) }
CSV.readlines(import_file, skip_blanks: true, headers: true).reject { |row| row.to_hash.values.all?(&:nil?) }
上面的返回了CSV :: Row对象的集合
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句