Tag: ruby on rails

编写有效的Excel文件

我得到一个端点,接收带有.xlsx文件的电子邮件作为附件。 我想将这些文件保存在我的应用程序中,以便以后可以访问数据。 在收到邮件及其附件application/vnd.openxmlformats-officedocument.spreadsheetml.sheet – 我的电话是mime_type application/vnd.openxmlformats-officedocument.spreadsheetml.sheet path = "data/emails/#{attachment.filename}" File.write(path, attachment.body.decoded) 但我得到这个错误: Encoding :: UndefinedConversionError:从ASCII-8BIT到UTF-8的“\ x85” 当我使用add .force_encoding('utf-8')到解码体时,它会成功,但它写入的文件变得无效。 我无法正常打开它,也无法访问它的数据。 我如何写一个正常的Excel文件?

如何使用axlsx gem将列添加到现有行?

我正在尝试格式化我的xlsx文件,但是我遇到了一些问题。 例如,我需要添加列到现有的行。 例如这里是我的代码: wb.add_worksheet(name: "Sums") do |sheet| sheet.add_row ["1.", "Rodiklis"], :style=>[title] sheet.add_row ["1.1", "Rekomendacijų vertė"] @departaments.each do |departament| sheet.add_row ["", departament.name] end @all_items.each do |summary| tyfcb = 0 rgi = 0 rgo = 0 rgirgo = 0 total = 0 rgirgo_per_user = 0 meeting_1_2_1 = 0 meeting_1_2_1_per_user = 0 ceu = 0 ceu_per_user = 0 […]

获取对已经存在的操作手册的引用

在运行我的脚本时,如何获得对已经存在的.xlsx工作簿的引用? 我使用Ruby gem Axlsx,这是我的代码: require 'axlsx' p = Axlsx::Package.new wb_file = File.open("simple.xlsx", "a+") wb = p.workbook(wb_file) # STICKING POINT: can't get a handle on an already existing workbook # wb = p.workbook("simple.xls") # worksheet = Worksheet.new(self, options) sheet = p.workbook.sheet_by_name("Basic Worksheet") sheet.add_row ["11", "22", "33"] p.serialize('simple2.xlsx') 我得到这个例外: ArgumentError: wrong number of arguments (1 for 0) […]

轨 – 附加xls文件到电子邮件

我创build了一个生成xls文件的代码,然后将它传递给邮件发送者作为附件。 但是,我一再得到同样的错误: TypeError: no implicit conversion of Spreadsheet::Workbook into String 要么 NoMethodError: undefined method `length' for #<Spreadsheet::Workbook:0x007fe937e4fe80> 我的代码是: def xls_mailer (data) attachments['HelloWorld.xlsx'] = data mail(subject: "Hi", to: @gmail.email) end *** data – 是我传递给此方法的xls文件。 谢谢你们,

使用Axlsx-Rails Gem导出极其简单的Excel时出错

我想用一个客户列表使用Axlsx-Rails gem导出一个简单的Excel: # Customers Controller def download @customers = Customer.all respond_to do |format| render xlsx: 'customers.xlsx.axlsx' # render xlsx: 'customers' TRYED BOTH end end # Template wb = xlsx_package.workbook wb.add_worksheet(name: "Download") do |sheet| @customers.each do |customer| sheet.add_row [customer.name, customer.email, customer.phone] end end 模板path是views/customers/customers.xlsx.axlsx ,错误是Missing template customers/customers 错误在哪里?

在rails应用程序中导入excel文件

我跟随瑞安·贝茨railcast教程通过导轨应用程序导入excel文件。 我的Ruby版本是2.2.4和rails版本是4.2.6我已经安装了“roo”gem。 我的app \ models \ user.rb文件是: class User < ActiveRecord::Base require 'csv' def self.import(file) spreadsheet= open_spreadsheet(file) header=spreadsheet.row(1) (2..spreadsheet.last_row).each do |i| row=Hash[[header,spreadsheet.row(i)].transpose] user=find_by_id(row["id"])||new user.attributes=row.to_hash.slice(*accessible_attributes) user.save end end def self.open_spreadsheet(file) case File.extname(file.original_filename) #when ".csv" then Roo::Csv.new (file.path nil, :ignore) when ".xls" then Roo::Excel.new (file.path) #when ".xlsx" then Excelx.new (file.path, nil, :ignore) else raise "Unknown file type: […]

如何在rails中parsing一个excel行数据

我正在Rails应用程序开发一个ruby,我需要导入一个Excel文件。 我正在使用电子表格gem。 现在我的问题是,我不能从Excel文件中获取单行数据。 我的代码在这里: def actual_import(file) puts "In the actual_import method" spreadsheet= Employee.open_spreadsheet(file) header=spreadsheet.row(1) (2..spreadsheet.last_row).each do |i| row=Hash[[header,spreadsheet.row(i)].transpose] $send_name=row.to_hash.slice('firstname') puts $send_name.to_s #this prints a weird result,,described below puts $send_name.length create end end 而我在Employee模型中的open_spreadsheet方法是: def self.open_spreadsheet(file) case File.extname(file.original_filename) #when ".csv" then Roo::Csv.new (file.path nil, :ignore) when ".xlsx" then Roo::Excelx.new (file.path) #when ".xlsx" then Excelx.new (file.path, nil, […]

TypeError没有将PicUploader隐式转换为String

我正在使用axlsx-rails来生成包含我的用户实体中的信息的Excel工作表。 当我尝试在Excel表格中放置图像时出现问题。 我正在使用carrierwave 0.11.2 ,我已经确定我已经正确设置它,我有string列profile_pic保存图像,我有上传PicUploader ,它已经挂载到用户。 载波实现工作正常,图片显示在用户的“显示”页面,但是当我尝试按照axlsx示例将图像放在表单中 img = File.expand_path(@user.profile_pic, __FILE__) sheet.add_image(:image_src => img, :noSelect => true, :noMove => true) do |image| image.width=420 image.height=669 end 我得到的TypeError no implicit conversion of PicUploader into String 任何想法可能导致这个?

显示启用了Rails引擎模型的模型

所以我正在一个rails引擎,它有upload和validatefunction。 一旦file upload,用户将点击validation,并将数据从excel文件保存到应用程序的表。 我的引擎不会提供任何迁移,所有的迁移将由应用程序提供。 现在,当我安装我的引擎时,我的引擎模型需要在某些应用程序的模型中注册。 例如,如果总共有10个模型,并且我的引擎模型仅在3个模型的应用程序中注册,则应该显示我的引擎模型启用的应用程序模型。 比我也应该能够访问我的引擎中的这些模型的表,以保存Excel文件中的数据。 代码为引擎的模型是 require "roo" module MyEngine class Upload < ActiveRecord::Base self.table_name = "admins" def self.validate(file) spreadsheet = open_excel(file) header = spreadsheet.row(1) for i in 2..spreadsheet.last_row do row = Hash[[header, spreadsheet.row(i)].transpose] upload = Upload.new(row) upload.save! end end private def self.open_excel(file) case File.extname(file) when ".xls", ".xlsx" then Roo::Spreadsheet.open file else raise […]

导轨的自定义标题4 CSV导入

即时通讯添加导入function,我的导轨应用程序..我想有能力导入用户,但我的用户表列是短手即。 f_name =冷杉名称l_name =姓氏等..我想创build一个导入工具,用户可以从应用程序下载并填写以节省时间在初始用户导入(这也将用于其他模型。 。)有什么办法可以设置导入方法来读取自定义标题? 我试图找出这个,但没有回头。 也许这就是我如何解释这个问题? 因为它现在的importfunction正在工作,但谁真的想要一个讨厌的平原看excel表.. 我的导入控制器操作: def import User.import(params[:file]) redirect_to users_path, notice: 'Users Added Successfully' end 我的导入类function: def self.import(file) CSV.foreach(file.path, headers: true) do |row| User.create! row.to_hash end end