`

Ruby 导入excel 并检查格式

阅读更多
本帖是上篇
在Rails项目中导入excel 导出excel 实用rails解析excel的姊妹后继,主要介绍一个导入excel的ruby插件

插件importex


安装

 gem install importex


或者rails plugin用

./script/plugin install git://github.com/ryanb/importex.git


创建基于Importex::Base的类

  require 'importex'
  class Product < Importex::Base
    column "Name", :required => true
    column "Price", :format => /^\d+\.\d\d$/, :required => true
    column "Amount in Stock", :type => Integer
    column "Release Date", :type => Date
    column "Discontinued", :type => Boolean
  end



导入excel文件

  Product.import("path/to/products.xls")

不能处理定制的负责excel数据比如有图,
预期第一行是字段名,之后都是数据。

使用导入数据

  products = Product.all
  products.first["Discontinued"] # => false


all代表所有的数据, 各个字段作为hash

数据验证和容错处理

当excel的数据格式不能处理的时候,或者数据格式不符合时
  begin
    Product.import(...)
  rescue Importex::ImportError => e
    puts e.message
  end



用户定义数据类型


在使用这个插件的时候,允许导入的字段指向Ruby对象,例如,下面的例子,可以增加一个字段表示上面导入Product的类型情况

  class Category < ActiveRecord::Base
    def self.importex_value(str)
      find_by_name!(str)
    rescue ActiveRecord::RecordNotFound
      raise Importex::InvalidCell, "No category with that name."
    end
  end

  class Product < Importex::Base
    column "Category", :type => Category
  end




4
0
分享到:
评论

相关推荐

    ruby对excel的操作 详细操作

    在Ruby中操作Excel文件主要是通过`win32ole`库来实现的,这个库允许Ruby程序与Windows操作系统中的Office应用程序进行交互,如Microsoft Excel。以下是关于如何使用Ruby操作Excel的详细步骤和知识点: 1. **引入win...

    用ruby读excel文件生成xml文件

    标题 "用ruby读excel文件生成xml文件" 描述的是一项技术任务,即使用Ruby编程语言来处理Excel文件,并将其内容转换成XML格式。这在数据迁移、格式转换或与不支持Excel格式的应用程序进行数据交换时非常有用。Ruby库...

    ruby代码分享——excel应用

    可以将Ruby中的时间对象转换为字符串并写入Excel单元格,这样可以保持日期时间的格式。 ```ruby worksheet.Range('e2').Value = Time.now.strftime('%d/%m/%Y') ``` #### 8. 运行Excel内置功能 除了基本的读写...

    Ruby源代码-读写excel.rb

    Ruby源代码,读写excel

    ruby下将txt文件内容写入excel

    使用RUBY语言将TXT文件中的内容写入到excel中!

    excel lib ror ruby

    RoR是一个流行的开源Web开发框架,而Ruby语言本身支持与Microsoft Excel文件交互,这在数据导入导出、报表生成等场景中非常有用。 描述虽然简洁,但我们可以推断出它可能是指如何在Ruby中利用库来读取、写入或操作...

    ruby对excel详细操作-读取、统计、写入

    ruby对excel中的数据进行读取,统计进行计算,重新写入另一个excel表格。存在读取excel数据,进行数量统计,分隔符操作,hash函数统计,取几位小数以及百分比。windows电脑可用,无需安装依赖包,直接使用ruby语言...

    用ruby实现的一个excel财务报表的功能

    为女朋友实现的,免去她不停...读取大量工作表的中的数据,再把这些数据以一定的格式填写到工作表中去,并保存,这其中数据的读取是很麻烦的事,需要不停的匹配和刷选,很有参考价值。如果使用,只需安装ruby就可以的!

    Ruby源代码(数据导出excel)

    Ruby源代码,批量导出数据到excel文件脚本。

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    Ruby-从FM网站如获取音频并转换到MP3格式

    在Ruby编程语言中,从FM网站获取音频并将其转换为MP3格式涉及到多个步骤和相关的技术。这个过程通常包括网络请求、数据解析、音频下载以及音频编码转换。下面将详细介绍这些知识点。 首先,你需要了解如何使用Ruby...

    Ruby-Rubustrings检查Localizablestrings文件的格式和一致性

    1. **格式检查**:验证Localizable.strings文件中的键值对是否按照正确的格式编写。例如,每个键值对应该遵循“"key" = "value";”的格式,并且保持正确的缩进和结束分号。 2. **一致性检测**:确保所有Localizable...

    redlock-rb, 在 ruby 中,基于Redlock的分布式锁实现.zip

    redlock-rb, 在 ruby 中,基于Redlock的分布式锁实现 redlock ruby - 中的分布式锁这个 ruby 库实现了基于redis的分布式锁管理器算法( ) 。要创建锁定管理器:dlm = Redlock.new("redis://127.0.0.1:6379","redis

    ruby DBI ruby DBI ruby DBI

    ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...

    不安装office 用ruby直接操作excel文件

    由于想操作excel文件,对其的数据进行修改,但是因为没有office2003(价格原因)所以无法直接修改。所以调查了一下,有很多日本人做好的gem(spreadsheet.gem)可以直接拿来用。也就可以不安装office就可以对excel...

    Ruby-rubybuild编译和安装Ruby

    而`ruby-build`是`rbenv`的一个插件,它的主要功能是编译并安装各种版本的Ruby。 首先,你需要在你的系统上安装`rbenv`。这通常涉及克隆`rbenv`的GitHub仓库,并将其添加到PATH环境变量中。对于Unix或类Unix系统...

    Ruby编程,Ruby编程,

    - **核心库和工具**:详细介绍了Ruby标准库中的一些重要模块,如数组、哈希表等,并探讨了常用的Ruby工具和环境配置方法。 - **高级主题**:包括元编程、线程、网络编程等内容,适合想要进一步深入了解Ruby的...

    fast_excel:Ruby超快速Excel编写器

    Ruby超快速Excel编写器 require 'fast_excel' workbook = FastExcel . open ( "hello_world.xlsx" , constant_memory : true ) workbook . default_format . set ( font_size : 0 , # user's default font_family ...

    Ruby on Rails 电子商务模板 批量导入商品

    Ruby on Rails 现在带来了网页开发风暴; 现在国内接触这方面资源较少,php还是主流,可是ruby崛起是必然。 笔者在ruby on Rails 学习中发现一个扩展性极好的模板,spree 工作之余,自己编写了基于这个模板的商品...

Global site tag (gtag.js) - Google Analytics