最近需要用ruby读取excel文件,网友有很多包,但是多少都会出现些问题,而且读取效率也不是很高。后来在论坛上看到有说用WIN32OLE读取excel文章,然后就试了一下。发现效果还不错。但是缺点是无法自动结束excel程序。
所以没回执行完后 杀掉进程即可:system("taskkill /f /im excel.exe")
require 'win32ole' require 'date' require 'win32api' def excelReader() excel = WIN32OLE.new("excel.application") excel.visible = false filepath="D:\\auto_work\\Book1.xls" #路径用两斜杠 workbook = excel.workbooks.open(filepath) worksheet=workbook.worksheets(1) #worksheet=workbook.worksheets("sheet name") 打开表名 #读取excel文件 return_data=[] config_data=[] config_data1=[] taix_date=[] taix_from=[] taix_to=[] taix_km=[] taix_fee=[] taix_reason=[] row=3 13.times do #读取单元格数据赋给数组 config_data << worksheet.range("b#{row}").value.to_s row+=1 end row=6 return_data<<config_data 8.times do #读取单元格数据赋给数组 config_data1 << worksheet.range("c#{row}").value.to_s row+=1 end row=2 return_data<<config_data1 while worksheet.range("d#{row}").value #读取出租车详细日期 taix_date << worksheet.range("d#{row}").value.strftime("%Y-%m-%d") row+=1 end row=2 return_data<<taix_date while worksheet.range("e#{row}").value #读取单元格数据赋给数组 taix_from << worksheet.range("e#{row}").value.to_s row+=1 end row=2 return_data<<taix_from while worksheet.range("f#{row}").value #读取单元格数据赋给数组 taix_to << worksheet.range("f#{row}").value.to_s row+=1 end row=2 return_data<<taix_to while worksheet.range("g#{row}").value #读取单元格数据赋给数组 taix_km << worksheet.range("g#{row}").value.to_s row+=1 end row=2 return_data<<taix_km while worksheet.range("h#{row}").value #读取单元格数据赋给数组 taix_fee << worksheet.range("h#{row}").value.to_s row+=1 end row=2 return_data<<taix_fee while worksheet.range("i#{row}").value #读取单元格数据赋给数组 taix_reason << worksheet.range("i#{row}").value.to_s row+=1 end return_data<<taix_reason return return_data excel.close system('taskkill -f -im excel.exe') end
相关推荐
Win32OLE extension library provides an interface to OLE Automation from Ruby. Here is a sample script: require 'win32ole' application = WIN32OLE.new('Excel.Application') application.visible = TRUE...
以ole方式读取excel文件 ,以ole方式读取excel文件 ,以ole方式读取excel文件
在程序中读取excel文件比如XLS和XLSX,方法有很多,比如ADO,OLE,ODBC等方式。但是这些方法要么依赖于平台,要么读取速度慢,有的甚至需要电脑本身装有excel程序。 但是有一个付费的商业软件库Libxl,属于轻量化的...
方法一:采用OleDB读取EXCEL文件:方法二:引用的com组件:Microsoft.Office.Interop.Excel.dll 读取EXCEL文件 方法三:将EXCEL文件转化成CSV(逗号分隔)的文件,用文件流读取(等价就是读取一个txt文本文件)。...
引言脚本语言,其目的是将 Unix shell 的易用性和编程语言( 比如 C) 的功能与可塑性结合起来。它最初只是 Unix 系统管理员的一个工具, 在工作日
汽车产业链平台的开发使用的开发工具为VS.NET,使用的语言是C#,在开发的过程中发现使用Microsoft.Jet.OLEDB.4.0读取数据会出现当某一字段内分别含有文本和数字的混合数据时,某一类型的数据会产生丢失。本文就对此...
一、ASP.NET读取Excel文件方法一:采用OleDB读取Excel文件: 把Excel文件当做一个数据源来进行数据的读取操作,实例如下: 1. public DataSet ExcelToDS(string Path) 2. { 3. string strConn = "Provider=Microsoft...
转载:delphi7如何读取excel文件 用ole可以解决 用delphi提供 servers选项 第三方的表格控件可以直接读取excel的数据
利用OLE技术对Excel文件进行读取!通过加载动态链接库到内存的方式,对excel进行高速读取!
一个基于Delphi语言编写的OLE自动化控件器,让Delphi支持打开.xls格式的Excel表格文件,简要概述一下实现步骤:建立OLE对象、使Excel可见,并将本程序最小化,以观察Excel的运行情况、使Excel窗口不可见、注意:...
C++读取Excel数据 ole 模式 VS2003 Excel 2003
win32ole-mapi-outlook
本文将详细介绍OLE 操作 Excel 的完整代码,包括使用 OLE 技术在 C++Builder 中操作 Excel 的所有步骤。通过本文,您将了解如何使用 OLE 技术来启动 Excel、创建新的工作簿、选择工作表、重命名工作表、取得工作表...
1、选择当前路径下的所有xls文件(xls文件必须是统一格式); 2、选取Excel中某个sheet中的某几列读入到Dataset里面; 3、从Dataset导出到Excel表格 注:此代码运行是需有office组建作为支持,即运行该程序的电脑上...
根据excel文件的完整存放路径,读取该excel文件所有的sheet的名字,默认的一般是sheet1,sheet2等,也可以自定义名字,得到的是一个DataTable,是sheet的名字集合。
OLE 操作Excel的示例,可以在窗体中显示Excel图表。
用法使用npm install win32ole 。 它的作用是...(版本0.1.x) try { var win32ole = require ( 'win32ole' ) ; // var xl = new ActiveXObject('Excel.Application'); // You may write it as: var xl = win32ole ....
win32::ole的官方文档,放在这里给大家看看
C# WinFORM 窗体小程序。采用oledb技术读取EXCEL表格内容,并使用DataGridView控件进行展示,含全部源代码,供有需要的人士下载学习使用。
Win32::OLE安装模块,可以导入perl,以关键词use Win32::OLE开头,即可在perl调用相应函数来操作excel