Tag: ruby on rails

使用Roo-xls gem保存Rails之前validation上传的Excel文件

在模型中,在上传.xls文件之前,我希望能够在应用程序保存excel文件之前对其进行validation。 我试图从:file_url对象(comits表中列的.xls文件将被保存)中打开要保存的excel文件,然后validation它,但我得到一个no implicit conversion of Symbol into String错误。 validation的工作,当我把一个excel文件的已经上传和保存到Roo::Excel.new("")的实际文件path,但是这打败了我的validation的目的。 我怎样才能抓住Excel文件没有被存储在应用程序? 我感谢帮助! 我希望不是太混乱。 这是我的comit.rb class Comit < ActiveRecord::Base belongs_to :user mount_uploader :file_url, ComitUploader, mount_on: :file_url validates :filename, :file_url, presence: true validates_format_of :file_url, with: /.xls/, message: "Wrong file format" before_save :validate_excel def validate_excel sheet = Roo::Excel.new(:file_url) errors = [] header = sheet.row(1) num_of_columns = sheet.last_column errors << […]

从Excel文件读取和保存数据 – 如何parsing文件 – 未定义的方法`to_f'为#<Array:0x1579b6a8>

我跟随了关于如何从Excel导入数据的RailsCast教程。 我想阅读我的excel文件,并告诉他要读取哪些信息并保存,指示要接收的行。 所以我在我的模型(.rb)文件中写了类似的东西: def self.to_csv(options = {}) CSV.generate(options) do |csv| csv<<column_names all.each do |repartition| csv<<repartition.attributes.values_at(*column_names) end end end def self.import(file) #Ouverture du fichier spreadsheet = open_spreadsheet(file) #Lecture du fichier, lignes par lignes, en aveugle (1..spreadsheet.last_row).each do |i| @repartition=Repartition.new @repartition.fond_repartition_id=spreadsheet.row(4) @repartition.date_repartition=spreadsheet.row(3) @repartition.AssetAllocCash=spreadsheet.row(5) @repartition.AssetAllocEquity=spreadsheet.row(6) @repartition.AssetAllocBond=spreadsheet.row(7) @repartition.AssetAllocOther=spreadsheet.row(8) #Sauvegarde de la ligne qui vient d'être lu repartition.save! #Depart prochaine […]

当用rails和roo导入xlsx文件时如何忽略隐藏的表格

我正在使用Roo将xlsx文件导入到我的Rails应用程序中。 import工作正常,但是,当试图做一个“工作簿”import,而不是一个“工作表”import商,我注意到有一些文件上隐藏吨大量。 例如: 在某些文件中,SUB_LABOR工作表包含应导入的重要数据。 这些不是隐藏的。 在其他文件中,SUB_LABOR被用作暂存区,然后隐藏,以便使用该表的人不会使用它。 我希望我的import商在工作簿中阅读并parsing没有隐藏的表格,并忽略那些表格。 我发现隐藏的值存储在<Nokogiri::XML::Attr:[a hex value] name="state" value="hidden">下的excelx对象中 有没有办法从对象中挖掘出这些信息并采取行动? 整个对象都是大的方式来张贴在这里。

用aplsx :: Package在apis中发送xlsx数据,并再次将收到的响应string转换为Axlsx :: Package类

我正在处理API,它将以下面的代码返回以xlsx格式创build的数据 respond_to do |format| format.xlsx do p = Axlsx::Package.new wb = p.workbook wb.add_worksheet(name: "MyWorkSheet") do |sheet| sheet.add_row ["Column1", "Column2", "Column2"] @myData.each do |locale| sheet.add_row [locale.column1, locale.column2, locale.column3] end end send_data Base64.encode64(p.to_stream.read), type: "application/xlsx", filename: "myfile.xlsx" end p是类Axlsx::Package 在networking上我收到以下回应 response => <Net::HTTPOK 200 OK readbody=true> 现在我想从这个响应体创buildxlsx文件 我用下面的代码解码了响应的主体并接收了数据 decoded_data = Base64.decode64(response.body) 但是,decode_data是String类的。 我的问题是 我怎样才能将这个Axlsx::Package再次转换为Axlsx::Package类,并保存/导出到xlsx文件?

OpenDocument电子表格在Microsoft Excel中损坏

我正在使用一个gem写入一个OpenDocument电子表格( RSpreadsheet )一旦数据写入,我让用户下载它。 电子表格在Mac版OpenOffice Calc和Numbers中正常工作。 但是,当我尝试在Microsoft Excel中打开电子表格时,它告诉我电子表格已损坏。 这只发生在我写数据的时候。 我可以通过Ruby打开它,保存它,它会正常工作。 一旦我写入数据,它就会变坏。 我已经尝试了另一个gem( Rubiod ),并能够在Excel中打开电子表格,但只有在Excel必须“恢复”电子表格后才能打开。 这样做,它删除了公式和一些格式。 OpenOffice和Numbers更糟,尽pipe它保留了公式。 我需要用户能够下载这个电子表格,他们select哪个程序。 我不知道为什么Excel说这张纸是腐败的,而且试图把我的头包裹好几个小时。 电子表格保存为ODS扩展名,并使用MIMEtypes的application/x-vnd.oasis.opendocument.spreadsheet和一个字符集utf-8 例子: original = Rspreadsheet.open 'blank.ods' sheet = original.worksheets 1 sheet.A1 = 'FooBar' # Without this, Excel can open the spreadsheet fine original.save 'new.ods' respond_to do |format| format.all do send_data File.read('new.ods'), type: 'application/x-vnd.oasis.opendocument.spreadsheet; charset=utf-8; header=present' disposition: 'attachment; filename=new.ods' […]

如何使用Roo :: Excel保存修改的Excel文件?

我使用Roo :: Excel打开了一个现有的excel文件。 我也能够修改内容。 问题是我不知道如何保存它。 Roo:Excel只是为了阅读吗? 如果不是,我如何保存更改?

导出引导程序表数据不工作Internet Explorer

当单击导出button将表格数据导出到excel文件时,Internet Explorer上没有任何反应。 这个function在谷歌浏览器和火狐浏览器上运行良好,但是我们的许多用户仍然停留在Internet Explorer的土地上,并且不愿让步。 有一个解决方法来获得这个function的工作? 有没有人遇到过这个问题? 相关代码: %table.class_name{data: {"show-export" => "true", "export-types" => ['excel']}}

无法获得唯一性validation工作在我正在上传的Excel文件

我的客户端模式有两个属性:: :name和:address (这是我们客户网站的url)。 这个应用程序的重点在于查看一个公司是否在呼叫列表或客户端上,然后拨打电话进行查找,以便用户可以input他们的url,看他们是否可以打电话。 我正在使用Ruby 2.3.1和Rails 4.2.6 我有一个唯一性validation以及:addressvalidation设置:address ,但是当我导入一个xlxs文件时,客户端地址已经在数据库中,它仍然上传它们,只是覆盖原来的条目。 同时,如果我不包含地址,则在线validation确实起作用。 如果我以标准Client#newforms逐一添加公司,那么唯一性validation确实起作用。 只是没有与卓越。 我使用这里find的方法: http : //railscasts.com/episodes/396-importing-csv-and-excel?autoplay= true和在这里: https : //github.com/railscasts/396-importing-csv -and-的Excel /树/主/存储与-validation 我正在使用client_import模型和控制器来尝试做这个工作。 这是我的客户端模型:client.rb class Client < ActiveRecord::Base #attr_accessible :name, :address validates :address, uniqueness: { case_sensitive: false}, presence: true def self.search(q) where("name LIKE ?", "%#{q}%") where("address LIKE ?", "%#{q}%") end def self.import(file) spreadsheet = open_spreadsheet(file) […]

Rails打开xls(excel)文件

我有一个文件从Excel中b.xls我需要将其导入到我的Rails应用程序 我试图打开它 file = File.read(Rails.root.to_s+'/b.xls') 我有这个 file.encoding => #Encoding:UTF-8 我有几个问题: 如何打开没有这个符号(普通语言)? 如何将这个文件转换为散列? 文件相当大约5千行

Rails 5如何将数据从xls文件导入数据库

我想弄清楚如何从xls文件添加数据到我的rails 5 psql数据库。 我试图按照GoRails教程 – 但这些教程很快就变得无关紧要,因为它们使用在应用程序中创build的CSV文件来完成教程。 我不知道如何将我的xls数据转换为csv数据以跟随该教程。 我也尝试了这些教程。 我无法让他们中的任何一个工作。 我已经试过这个教程 , 这一个 , 这一个 。 我无法让他们中的任何一个工作。 对我在第一篇教程的博客上发布的问题的回应说,要采取一个在post中没有列出的步骤。 我一点也不明白,我应该一步一步地填补空白。 我概述了我在这个SO职位上的工作 。 我无法find帮助,让xls上传工作。 所以,我再次提出了一个求助的要求 – 因为第一个SOpost变得很长,我尝试了所有的尝试来实现build议的解决scheme。 我有: class Randd::Field < ApplicationRecord require 'csv' # def self.import(file) # CSV.foreach(file.path, headers: true) do | row | # Randd::Field.create! row.to_hash # end # end def self.create(file) CSV.foreach(file.path, headers: true) do […]