csv - 去 panic : extra delimiter at end of line
全部标签 我正在尝试上传一个csv文件,但收到UTF-8中的无效字节序列错误。我正在使用“roo”gem。我的代码是这样的:defupload_results_csvfilespreadsheet=MyFileUtil.open_file(file)header=spreadsheet.row(1)#THISLINERAISESTHEERROR(2..spreadsheet.last_row).eachdo|i|row=Hash[[header,spreadsheet.row(i)].transpose]......endclassMyFileUtildefself.open_file(file
我正在从数据库查询中检索大量结果哈希并将它们写入csv文件。下面的代码块获取结果并创建CSV。使用quote_char:选项,它将用NULL字符替换引号,我需要这些字符才能正确创建制表符分隔的文件。但是,NULL字符在加载到目的地时会被转换为“”,因此我想删除它们。如果我省略quote_char:,每个字段都用双引号引起来,这会导致相同的结果。如何删除NULL字符?beginCSV.open("#{file_path}"'file.tab',"wb",Options={col_sep:"\t",quote_char:"\0"})do|csv|csv 最佳答案
我遇到问题,我需要下载、解压缩,然后逐行处理一个非常大的CSV文件。我认为让您了解文件有多大很有用:big_file.zip~700mbbig_file.csv~23gb这是我希望发生的一些事情:解压缩前不必下载整个文件在解析csv行之前不必解压缩整个文件在执行所有这些操作时不要占用太多内存/磁盘我不知道这是否可能。这是我的想法:require'open-uri'require'rubyzip'require'csv'open('http://foo.bar/big_file.zip')do|zipped|Zip::InputStream.open(zipped)do|unzipped
我有一个允许用户导入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?)}编辑您请求了read
假设我有以下类(class):classBuyer以及CSV文件中的以下内容:FirstName,LastNameJohn,DoeJane,Doe我想将CSV的内容保存到数据库中。我在Rake文件中有以下内容:namespace:migrationdodesc"MigrateCSVdata"task:import,[:model,:file_path]=>:environmentdo|t,args|require'csv'model=args.model.constantizepath=args.file_pathCSV.foreach(path,:headers=>true,:con
这是我在做的:csv=CSV.open(file_name,"r")我用它来测试:line=csv.shiftwhilenotline.nil?putslineline=csv.shiftend我遇到了这个:ArgumentError:invalidbytesequenceinUTF-8我读了answerhere这就是我尝试过的csv=CSV.open(file_name,"r",encoding:"windows-1251:utf-8")我遇到了以下错误:Encoding::UndefinedConversionError:"\x98"toUTF-8inconversionfromW
我一直在用CSV.table做一些测试。我有两个几乎相同的小CSV文件,但其中一个缺少标题行。当我对带有标题行的CSV文件运行CSV.table时,一切都按预期进行。当我针对没有标题行的CSV文件运行它时,我得到:NoMethodError:undefinedmethod`encode'fornil:NilClass我用不同类型的数据、不同类型的header尝试了这个,并得到了相同的结果。我很好奇CSV.table的魔力。如果我使用CSV.parse并将标题设置为true,那么无论如何它总是使第一行成为标题。所以,我一直在使用CSV.table来检查导入的CSV文件是否有标题行,但我对
Ruby中是否有任何插件可以将CSV文件转换为Excel。我几乎没用谷歌搜索,但我发现的只是将Excel文件转换为CSV。我知道一些我可以稍微调整并用于将Excel转换为CSV的gem,但我需要知道以前是否有人这样做过。 最佳答案 根据thispost,spreadsheetgem是一种可能性。看起来这是一个非常受欢迎的gem。看看这个。例子:book=Spreadsheet::Workbook.newsheet1=book.create_worksheetheader_format=Spreadsheet::Format.new(
我正在使用活跃的管理员导出CSV选项。它返回与特定表相关的所有值。我只想要特定月份的报告。有人能帮忙吗? 最佳答案 您可以编写自己的csv导出器collection_action:download_report,:method=>:getdousers=User.where('created_at>=?',Date.today-1.month)csv=CSV.generate(encoding:'Windows-1251')do|csv|#addheaderscsv:download_report))endindex:downloa
我只是无法在“写作”下获得“到字符串”示例exampleinthedocumentation完全可以工作。ruby-v返回:ruby1.9.2p290(2011-07-09修订版32553)[x86_64-darwin10.8.0]我无法使用的文档示例在这里:csv_string=CSV.generatedo|csv|csv我得到的错误是:wrongnumberofarguments(0for1)看来我在文档中遗漏了一个参数here它指出:ThismethodwrapsaStringyouprovide,oranemptydefaultString但是当我传入一个空字符串时,会出现以下