`

RUBY操作EXCEL文件

阅读更多

使用ruby来操作excel文件首先需要在脚本里包含以下语句

require 'win32ole'

把win32ole包含进来后,就可以通过和windows下的excel api进行交互来对excel文件进行读写了.

 

打开excel文件,对其中的sheet进行访问:

excel = WIN32OLE::new('excel.Application')

workbook = excel.Workbooks.Open('c:\examples\spreadsheet.xls')

worksheet = workbook.Worksheets(1) #定位到第一个sheet

worksheet.Select

读取数据:

worksheet.Range('a12')['Value'] #读取a12中的数据

data = worksheet.Range('a1:c12')['Value'] #将数据读入到一个二维表

 

找到第一处a列的值为空值

line = 1

while worksheet.Range("a#{line}")['Value']

   line=line+1

end #line的值为第一处空白行的行数

 

将第一列的值读入到一个数组中

line = '1'

data = []

while worksheet.Range("a#{line}")['Value']

   data << worksheet.Range("a#{line}:d#{line}")['Value']

   line.succ!

end

 

将数据写入到excel表格中

worksheet.Range('e2')['Value'] = Time.now.strftime '%d/%m/%Y' #单个值

worksheet.Range('a5:c5')['Value'] = ['Test', '25', 'result'] #将一个数组写入

 

调用宏定义

excel.Run('SortByNumber')

设置背景色

worksheet.Range('a3:f5').Interior['ColorIndex'] = 36 #pale yellow

# 将背景色恢复成无色

worksheet.Range('a3:f5').Interior['ColorIndex'] = -4142 # XlColorIndexNone constant

# 使用Excel constant 将背景色恢复成无色

worksheet.Range('a3:f5').Interior['ColorIndex'] = ExcelConst::XlColorIndexNone

 

保存

workbook.Close(1)

# 或

workbook.SaveAs 'myfile.xls'

# 默认路径是系统定义的"我的文档"

 

结束会话

excel.Quit

一些相对完整的代码片段

创建一个excel文件并保存

require 'win32ole'

excel = WIN32OLE.new("excel.application")

excel.visible = true     # in case you want to see what happens 

workbook = excel.workbooks.add

workbook.saveas('c:\examples\spreadsheet1.xls')

workbook.close

操作excel文件的几个重要元素

Excel => workbook => worksheet => range(cell)

我理解的是excel为类名,workbook为一个具体的(excel文件)实例,创建好实例后,worksheet是实例(workbook,工作簿)中的一个工作表,然后可

以对工作表中的每个单元格(range(cell))进行具体的读写------------------按照这样操作肯定没有错,不过下面的这些语句又让我有些疑惑

 

excel.workbooks("Mappe1").worksheets("Tabelle1").range("a1").value #读取名为Mappe1的excel文件中工作表名为Tabelle1的a1单元格中的值

excel.worksheets("Tabelle1").range("a1").value #作用同第一条语句

excel.activeworkbook.activesheet.range("a1").value #作用同第一条语句

excel.activesheet.range("a1").value #作用同第一条语句

excel.range("a1").value #作用同第一条语句

excel可以直接操作所有的属性,默认为当前活跃的工作簿/工作表

 

对单元格的操作:

某个单元格: sheet.range("a1")

a1到c3的值:   sheet.range("a1", "c3") 或 sheet.range("a1:c3")

第一列:    sheet.range("a:a")

第三行:    sheet.range("3:3")

获得单元格的值:

range.text #读取值,返回为字符串格式,如果单元格内为数字,有可能会被截断小数点后的位数

sheet.range("a1").text  

range.value #读取值,数字不会截断

sheet.range("a1").value      

对单元格设置值

sheet.range("a1").value = 1.2345

sheet.range("a1").value = '1.2345'

迭代访问:

sheet.range("a1:a10").each{|cell|puts cell.value}

如果范围是一个矩形,则会按行循环迭代访问

sheet.range("a1:b5").each{|cell|puts cell.value}

block迭代,并打印出每行的第一个值

sheet.range("b3:c7").rows.each{|r|puts r.cells(1,1).value}

分享到:
评论

相关推荐

    用ruby读excel文件生成xml文件

    Ruby库如`roo`可以方便地读取Excel文件,而`Nokogiri`则可以用来创建和操作XML文档。 首先,我们需要了解`roo`库。`roo`是Ruby中用于读取不同类型的电子表格文件(如Excel、OpenOffice、Google Sheets)的库。安装`...

    ruby对excel的操作 详细操作

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

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

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

    ruby代码分享——excel应用

    ### 使用Ruby操作Excel的基础知识点 #### 1. 引入win32ole库 在Ruby中操作Excel,通常会用到`win32ole`库。这个库允许Ruby与Windows下的OLE(Object Linking and Embedding)对象进行交互,其中包括了Microsoft ...

    excel lib ror ruby

    描述虽然简洁,但我们可以推断出它可能是指如何在Ruby中利用库来读取、写入或操作Excel文件。这通常涉及到几个关键的库,如`Spreadsheet`、`Win32OLE`和`ruby-ole`。 1. **Spreadsheet**: `Spreadsheet` 是一个纯...

    用JRuby读取Excel文件

    通过JRuby,我们可以调用POI的API,用Ruby代码来操作Excel文件,例如读取数据、修改内容、解析公式等。 以下是使用JRuby和Apache POI读取Excel文件的基本步骤: 1. 首先,需要在项目中引入Apache POI的Java库,这...

    C#操作Excel所需DLL库

    C#操作Excel所必须的DLL库文件。可以在VS2010下使用。编程语言为C#.具体包含一下三个文件: Interop.Excel.dll Interop.Microsoft.Office.Core.dll Interop.VBIDE.dll

    ruby+watir 测试框架

    在Ruby中,可以使用如 Roo 这样的库来读取和操作Excel文件。Roo库支持多种文件格式,包括XLS、XLSX和CSV,使得测试人员能够方便地导入和导出测试数据。 例如,我们可以创建一个Excel文件,其中包含测试场景的详细...

    C#操作Excel(Excel对象模型)_v1.0

    Excel的对象模型是Microsoft Office提供的用于访问和操作Excel文件的一种方式。通过该模型,开发人员可以轻松地读取、写入或修改Excel文件中的数据。 #### Excel对象模型的四大部分 Excel对象模型主要包括以下四个...

    Python对Excel操作详解.pdf

    xlrd 模块可以读取 Excel 文件,xlwt 模块可以写入 Excel 文件,xlutils 模块提供了一些实用的函数来操作 Excel 文件。 Python 对 Excel 操作的优点: * 可以快速读取和写入 Excel 文件 * 可以对 Excel 文件进行...

    oGood start for ruby

    7. **文件操作**:讲解如何使用Ruby处理Excel文件,如使用roo或axlsx库来读写Excel数据,进行数据的提取和分析。 8. **实践项目**:通过处理“公示名单.xls”,引导读者完成一个实际的小项目,提升编程技能。 以上...

    最新Python对Excel操作教程.docx

    xlrd 模块可以读取 Excel 文件,xlwt 模块可以写入 Excel 文件,xlutils 模块可以对 Excel 文件进行merge 和 split 操作。另外还可以使用 Tcl tcom 包对 Excel 操作。 Python 语法入门 在 Python 中,变量赋值可以...

    代码及结果

    标题中的“代码及结果”指的是将某种编程语言(在这种情况下是Ruby)编写的代码转换成或与Excel文件相关的操作。描述进一步明确了这是关于Ruby代码及其执行后产生的结果,特别是涉及到处理Excel文件。标签“excel”...

    Python对Excel操作教程.doc

    通过本文档的学习,读者可以了解到Python作为一种强大的编程语言,在处理Excel文件方面提供了多种便捷的方法。无论是简单的读写操作还是复杂的Excel文件处理需求,Python都能轻松应对。借助于xlrd、xlwt、xlutils...

    ruby 之 html 转 word 代码

    Axlsx是一个用于生成符合Open XML标准的Excel(xlsx)文件的Ruby库,尽管它的主要目的是生成Excel文件,但通过一些定制,也可以创建Word兼容的DOCX文件。安装Axlsx gem: ```bash gem install axlsx ``` 接下来,...

    读取excel

    当我们谈论“读取Excel”时,通常是指使用编程语言或者特定的库来访问和处理Excel文件中的数据。这篇内容将深入探讨如何在不同的编程环境中读取Excel文件。 1. Python中的Excel读取: Python拥有多个强大的库,如`...

    提取EXCEL ACCESS 手机电话号码

    - **runexcel.rb**:同样,这个文件可能用于操作Excel,利用了Ruby的Excel处理库。 4. **实际应用**: - **数据清洗**:在实际工作中,电话号码可能包含空值、错误格式或重复项,因此数据清洗是提取前的重要步骤...

    Ruby-ActiveImporter能够加载电子表格或CVS文件的数据至任何类似ActiveRecord的ORM框架中

    Ruby-ActiveImporter是一个强大的工具,专门设计用于将电子表格(如Excel、CSV)中的数据高效地导入到使用ORM(对象关系映射)框架,特别是类似于ActiveRecord的框架中。这个库简化了数据处理过程,使得开发者可以...

    解析excel的方法

    pandas的`read_excel`函数可以直接将Excel文件转换为DataFrame对象,方便后续的数据操作。 ```python import pandas as pd df = pd.read_excel('example.xlsx') print(df) ``` 4. **JavaScript中的xlsx库**:...

Global site tag (gtag.js) - Google Analytics