`

使用Ruby读取excel文件的简单例子

阅读更多

本篇文章已经比较老,全新的导入导出处理见 这里
Rails 的 Wiki 上有講到幾個方法可以直接用 Ruby 寫 Excel file:


1. office 2003 之後有支援以 xml 做為儲存格式。只要符合schema 的 XML file 就會被正確解讀成 Excel file。這樣產生出來的文件只有 office 2003 以後才能讀取

2. 用
Jakarta POI  的 Ruby Binding

3. 用 spreadsheet

4. 最後是用 CSV

Reading An Excel File With Ruby

Jump to Comments

This tutorial will cover how to read (or parse) an excel file with ruby. I had to write a script to unpivot some data for a co-worker that saved him hours of time, and I got to write a ruby script, so it was a win-win. Here's how you can do the same thing.

Installing Parseexcel

Parseexcel is a ruby port of the perl parseexcel module.

It's installable via a nice gem like so:

gem install parseexcel

 

That's that, now remember since it's a gem library we have to tell our script to use the gem libs when we run the script from the console using the -rubygems switch.

Using Parseexcel

Parseexcel is a very straight forward library, you can't do too much with it, but it gets the job done.

Getting a Workbook

Spreadsheet::ParseExcel.parse(filenameandpath)

This returns the actual excel file's workbook, from there we need to determine what worksheet we're on.

Getting a Worksheet

worksheet = workbook.worksheet(0)

Will return the first worksheet, you could also use the each method on the workbook to iterate over all the worksheets.

Iterating over rows and columns

The worksheet object has a very nice each method that will allow us to iterate over the rows like so

worksheet.each { |row|
  j=0
  i=0
  if row != nil
  row.each { |cell|
    if cell != nil
      contents = cell.to_s('latin1')
      puts "Row: #{j} Cell: #{i} #{contents}"
    end
    i = i+1
  }
  j = j +1
  end
}

 

Getting Cell Data

  • Getting a String: cell.to_s('latin1')
  • Getting a Float: cell.to_s('latin1')
  • Getting a Int: cell.to_i
  • Getting a Date: cell.date

Getting A Specific Cell

cell = row.at(3) #returns cell at column 3

 

A basic script for dumping an excel file

require 'parseexcel'

 

#Open the excel file passed in from the commandline
workbook = Spreadsheet::ParseExcel.parse(ARGV[0])

#Get the first worksheet
worksheet = workbook.worksheet(0)

#cycle over every row
worksheet.each { |row|
  j=0
  i=0
  if row != nil
  #cycle over each cell in this row if it's not an empty row
  row.each { |cell|
    if cell != nil
      #Get the contents of the cell as a string
      contents = cell.to_s('latin1')
      puts "Row: #{j} Cell: #{i}> #{contents}"
    end
    i = i+1
  }
  end
}

 

To run the script, remember to use the -rubygems switch so that you can find the parsexcel library.

ruby -rubygems excelparse.rb myfile.xls
分享到:
评论

相关推荐

    ruby对excel的操作 详细操作

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

    ruby代码分享——excel应用

    从给定的文件标题、描述、标签以及部分内容中,我们可以提炼出以下详细的IT知识点,主要聚焦于使用Ruby语言对Excel文件进行操作。 ### 使用Ruby操作Excel的基础知识点 #### 1. 引入win32ole库 在Ruby中操作Excel,...

    解析execel文档技术

    Apache POI提供了HSSF(老版的.xls文件)和XSSF(新版的.xlsx文件)API,可以创建、修改和读取Excel文件。 4. **Python的pandas库**: Python的pandas库是数据分析的利器,它内置了read_excel函数,可以方便地将...

    简单电子表格:简单电子表格是Ruby Gem阅读器,适用于常见电子表格格式:Excel(.xls,.xlsx),Open-office(.ods)和CSV(标准,excel,制表符分隔)

    简单的电子表格 电子表格阅读器和(以后)支持通用格式的书写器:CSV(.csv),Excel(.xls,.xlsx),Open-office(.ods)和Google(在线)。...读取整个文件 是的 是的 是的 是的 是的 是的 逐行阅读 是的

    roo:Roo为Open Office,Excel和Google Spreadsheets提供了一个界面

    以下是一个简单的使用`roo` 的Ruby代码示例,展示如何打开一个Excel文件并打印第一张工作表的单元格值: ```ruby require 'roo' # 打开Excel文件 xlsx = Roo::Spreadsheet.open('example.xlsx') # 获取第一个工作...

    robust_excel_ole:使控制Excel变得轻而易举(仅Windows)

    显然,这包括诸如读取和编写Excel工作簿之类的标准任务。 gem旨在管理同时运行的Excel实例,即使同时发生用户交互也是如此。 RobustExcelOle处理各种情况下的Excel(和用户)行为,并提供一些Excel和JRuby错误的...

    自动化测试Watir参考手册

    - **Excel**: 如何读取和写入Excel文件,这对于数据驱动测试非常重要。 - **ObjectMap(对象映射)**: 对象映射是解决元素位置变化问题的有效方法之一。 - **创建Map类**: 通过创建Map类来管理页面元素的引用,提高...

    covid-vaccination-spain

    CSV(逗号分隔值)文件是一种常见的数据交换格式,适合数据分析工具如Excel、Python的pandas库或R语言进行读取和处理。 从这个过程中我们可以学到以下IT知识点: 1. **PDF数据提取**:PDF文件通常包含丰富的格式和...

    selenium自动化测试

    Selenium 支持数据驱动测试,这意味着测试数据可以从外部文件(如CSV或Excel)中读取,使测试更灵活且易于维护。这样,同一测试脚本可以针对不同输入数据执行,提高测试覆盖率。 **6. 并发测试** Selenium Grid ...

    基于Selenium WebDriver的B_S架构软件的自动化测试研究.pdf

    4. 可实现数据驱动测试:通过读取外部数据源(如CSV、Excel等),可以轻松实现基于数据的测试。 文章提到的“自动化测试过程”涉及以下关键步骤: 1. 测试脚本编写:使用Selenium WebDriver提供的API编写自动化测试...

    Selenium

    此外,数据驱动测试也是常见实践,通过读取外部数据源(如CSV或Excel文件)来实现灵活的测试数据管理。 总之,Selenium 是一款强大的自动化测试工具,它提供的丰富的API和广泛的支持使得测试人员能够高效地进行Web...

Global site tag (gtag.js) - Google Analytics