Tag: ruby

未初始化的常量Spreadsheet :: Link – roo gem – xlsx文件

当我以xlsx格式打开文件时,使用empact / roo gem,这行代码: data = Roo::Spreadsheet.open("/Users/asd/Desktop/in_xlsx.xlsx", extensions: :xlsx) 或这一行 data = Roo::Excelx.new("/Users/asd/Desktop/in_xlsx.xlsx") 作品完美! (至less这是我认为的) data现在是一个Roo::Excelx对象,列和行正确填充。 但每当我尝试使用像data.first_row或data.cell(1,1) ,我得到这个 NameError: uninitialized constant Spreadsheet::Link from /Users/asd/.rvm/gems/ruby-2.0.0-p353@ch/gems/roo-1.13.2/lib/roo/excelx.rb:379:in `set_cell_values' 附加信息: MacOS 10.9.1 Rails 4.0.2 Ruby 2.0.0-p353 Roo(1.13.2) 任何帮助真的很感激!

简单的电子表格不正确地加载一个XML文件的ruby,但正常工作在IRB

我目前正试图打开和parsing这个XML文件使用ruby2.1.1。 直接的方法是使用简单的电子表格gem,这似乎不适用于这个特定的电子表格(和其他几个): require 'simple-spreadsheet' s=SimpleSpreadsheet::Workbook.read('151.xls') puts s.last_row #prints 5 但是,当我复制并粘贴到IRB这个确切的代码,我得到正确的答案 2.1.1 :001 > require 'simple-spreadsheet' => true 2.1.1 :002 > s=SimpleSpreadsheet::Workbook.read('151.xls') => #prints the entire contents of the spreadsheet 2.1.1 :003 > s.last_row => 154 当使用Roo时,会出现同样的情况(这是可以预料的,因为简单电子表格使用Roo打开.xls文件): require 'roo' s=Roo::Excel.new('151.xls') puts s.last_row #prints 5, should print 154 而在irb上 2.1.1 :001 > require 'simple-spreadsheet' => true 2.1.1 […]

使用ruby更新现有的Excel文件模板公式

我一直在使用spreadsheet来读取模板excel文件,修改它并为最终用户输出一个新文件。 据我可以从文档中确定电子表格提供没有办​​法input或编辑生成的文件中的公式。 然而,我的脚本的目的是从网站读取一个未定义数量的项目,并将其input电子表格,然后计算总计和小计。 最终用户(使用excel或libreoffice等)然后能够对项目数量进行微小的修改,而总计更新(由于公式),因为他们习惯于。 我已经看了writeexcel声称可以input公式,但我看不到如何采取现有的模板文件,并修改它来产生我的输出。 我只能创build新的工作簿。 请提供任何提示? 我不想使用Win32OLE。

Ruby不从excel文件input文本字段中的文本

我有一个有效和无效login组合的电子表格。 我使用Ruby在Selenium中编写了testing,将用户名和密码传递给我正在testing的网站的文本字段。 它不input用户名和密码。 事实上,testing似乎停留在一个连续的循环,并没有结束,而仍然集中在login窗口。 以下是我遇到的代码片段: require "win32ole" xl = WIN32OLE.new('Excel.Application') xl.Visible = true xl.displayAlerts = false wb = xl.Workbooks.open("C:/…/login.xlsx") ws = wb.Worksheets(1) ws.select rows = 2 while rows <= 3 username = ws.Cells(rows, "A").text password = ws.Cells(rows, "B").text end #invalid login @driver.find_element(:id, "tbLUser").clear @driver.find_element(:id, "tbLUser").send_keys(username) @driver.find_element(:id, "tbLPass").clear @driver.find_element(:id, "tbLPass").send_keys(password) assert element_present?(:name, "lg5_login") @driver.find_element(:name, "lg5_login").click 任何人都可以帮助我通过这个代码中的这个挂断,我会很感激。

如何把Roo Excel表格中的数组放在二维数组中

我使用ruby中的roo-gem来获得excel表单元值。 我有一个文件'ruby.rb': require 'spreadsheet' require 'roo' xls = Roo::Spreadsheet.open('test_work.xls') xls.each do |row| p row end 我运行ruby ruby​​.rb时在terminal输出的是: ["id", "header2", "header3", "header4"] ["val1", "val2", "val3", "val4"] ["val1", "val2", "val3", "val4"] 当我添加: require 'spreadsheet' require 'roo' xls = Roo::Spreadsheet.open('test_work.xls') xls.each do |row| two_dimensional = [] two_dimensional << row p two_dimensional end 我得到: [["id", "header2", "header3", "header4"]] [["val1", […]

无法使用Ruby 2.0在Windows 7上打开Excel应用程序

我使用了我从网站上获得的下面的代码,一旦我执行,我只是得到了一个光盘几秒钟,但Excel应用程序没有打开。 require 'win32ole' excel = WIN32OLE::new('excel.Application') workbook = excel.Workbooks.Add # create a new workbook worksheet = workbook.Worksheets.Add

将Ruby on Rails HTML表导出为.xls文件

我有下面的表格: <tr> <th colspan = "18"> student info</th> <th colspan="10">class info</th> </tr> <tr> <th colspan="1">First Name</th> <th colspan="1">Middle Name</th> <th colspan="1">Last Name</th> …. </tr> <tr> <td colspan="1"><%= link_to student.first_name,:controller => 'acme_modificationss' , :action=>'profile', :id => student.id %></td> <td colspan="1"><%= student.middle_name %></td> <td colspan="1"><%= student.last_name %></td> <td colspan="1"><%= student.first_name %></td> <td colspan="1"><%=m_first_name%></td> ….. 我需要将相同的表导出到.xls文件。 所以我给控制器添加了一个新的动作: def […]

Ruby Axlsx如何添加合并单元格的行

我想生成下面的excel: 我尝试了以下的代码 row = [1, 2, [31, 32]] p = Axlsx::Package.new wb = p.workbook wb.add_worksheet(:name => "Sheet1") do |sheet| sheet.add_row row end 但是我得到了以下的结果 | COLUMN1 |列2 | column3 | | 1 | 2 | [31,32] |

未定义的方法send_data

在电子表格中创build多个选项卡时,我得到了未定义的方法send_data 。 我无法理解使用send_Data方法发送的数据。 这是我的错误: NoMethodError (undefined method `send_data' for #<Class:0x007f911933cc58>): book = Spreadsheet::Workbook.new sheet1 = book.create_worksheet :name => 'Sheet1' sheet2 = book.create_worksheet :name => 'Sheet2' sheet1.row(0).push "some content in Column1" spreadsheet = StringIO.new book.write spreadsheet file = "#{Rails.root}/public/brand_store/Excelsheet" send_data spreadsheet.string, :filename => "#{file}", :type => "application/vnd.ms-excel"

Ruby on Rails:validationCSV文件

关于导入CSV( http://railscasts.com/episodes/396-importing-csv-and-excel )的RailsCast,我试图validation上传的文件是一个CSV文件。 我已经使用了gem csv_validator来做到这一点,正如这里所logging的那样https://github.com/mattfordham/csv_validator 所以我的模型看起来像这样: class Contact < ActiveRecord::Base belongs_to :user attr_accessor :my_csv_file validates :my_csv_file, :csv => true def self.to_csv(options = {}) CSV.generate(options) do |csv| csv << column_names all.each do |contact| csv << contact.attributes.values_at(*column_names) end end end def self.import(file, user) allowed_attributes = ["firstname","surname","email","user_id","created_at","updated_at", "title"] CSV.foreach(file.path, headers: true) do |row| contact = find_by_email_and_user_id(row["email"], user) || […]