最近需要用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...
3. 使用OLE读取Excel文件:要以OLE方式读取Excel文件,首先需要在编程环境中导入相关的库或模块,例如在VBScript、VBA或.NET框架中的`Microsoft.Office.Interop.Excel`。然后,你可以创建一个Excel Application对象...
1. **初始化**: 使用Win32::OLE模块加载Excel应用程序,并创建一个新的Excel实例。 ```perl use Win32::OLE; my $excel = Win32::OLE->new('Excel.Application', 'Quit'); ``` 2. **打开或创建工作簿**:通过Excel...
在本文中,我们将介绍使用 OLE 和 Excel Application 读取 Excel 文件的方法。 使用 OLE 读取 Excel 文件 使用 OLE(Object Linking and Embedding)读取 Excel 文件是一种常见的方法。OLE 允许 Delphi 应用程序与...
#### 方法一:使用OleDB读取Excel文件 **概述** 本文档介绍了一种通过OleDB访问Excel文件的方式,将其作为数据源来读取其中的数据。这种方法适用于Excel文件版本为97至2003之间的格式(.xls)。使用此方法时,需要...
在Ruby编程中,利用`Win32OLE`库可以创建一个与Outlook的连接,执行诸如读取、编写和发送邮件,管理联系人,甚至控制Outlook窗口等任务。 文件列表中的几个`.mht`文件很可能包含了使用Ruby论坛中讨论的关于这些主题...
在程序中读取excel文件比如XLS和XLSX,方法有很多,比如ADO,OLE,ODBC等方式。但是这些方法要么依赖于平台,要么读取速度慢,有的甚至需要电脑本身装有excel程序。 但是有一个付费的商业软件库Libxl,属于轻量化的...
以下是一个简单的示例,展示如何使用OleDb来读取Excel文件: ```csharp public DataSet ExcelToDS(string Path) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";Extended ...
汽车产业链平台的开发使用的开发工具为VS.NET,使用的语言是C#,在开发的过程中发现使用Microsoft.Jet.OLEDB.4.0读取数据会出现当某一字段内分别含有文本和数字的混合数据时,某一类型的数据会产生丢失。本文就对此...
C# 读取加密的Excel 文件; 有源码,VS2010开发。 采用的是微软的Microsoft.Office.Interop.Excel, V14.0,来读取加密后的Excle文件。 不是采用第三方控件NPOI读取加密的Excel文件。 开始研究NPOI读取加密的Excel文件...
使用Win32::OLE与Excel交互 在Perl脚本中,导入Win32::OLE模块并创建一个新的Excel实例,你可以这样开始: ```perl use Win32::OLE; my $Excel = Win32::OLE->new('Excel.Application', 'Quit'); ``` 这行代码会...
通过阅读上述书籍,结合实践,读者可以更深入地理解Perl及其在实际项目中的应用,特别是在使用Win32::OLE模块进行Excel操作方面。此外,网络上还有大量的教程和示例代码,可以帮助开发者快速上手并解决实际问题。
本文详细介绍了如何使用C# .NET读取Excel文件中的所有Sheet名称。通过上述方法,开发者可以轻松地获取到Excel文件中Sheet的列表,这对于后续的数据处理非常有帮助。同时,也强调了需要注意的几个关键点,以确保代码...
在C++中,读取Excel数据通常涉及到使用OLE Automation(对象链接和嵌入自动化)技术,这是一种允许不同应用程序之间交互的方式。在这个特定的例子中,我们使用Microsoft Visual Studio 2003 MFC(Microsoft ...
总之,通过OLE技术在VS2015中结合QT,我们可以实现高效且灵活的Excel文件读取。这种方式对于那些需要大量处理Excel数据的项目来说,既节省了资源,又提高了程序的响应速度。在实际应用中,开发者应根据项目需求和...
如果`runblog.rb`是Ruby脚本,我们可以假设它利用了`net/http`库来处理HTTP请求,并可能使用了`win32ole`来控制IE浏览器完成更复杂的交互,如登录博客网站、浏览页面或执行特定的用户操作。 总之,这个“刷博客小...
首先,读取Excel文件在MFC中通常涉及到Microsoft的OLE Automation技术,它允许我们与其他支持Automation的程序(如Excel)进行交互。你需要在项目中引用`#import`指令,导入`mscomctl.lib`和`msado15.dll`库,以便...
在提供的文件"outlook code.mht"和"outlook code.txt"中,可能包含具体的Python代码示例,演示了如何使用win32ole与Outlook的MAPI接口进行交互。这些代码通常会展示如何创建邮件、设置属性,以及发送邮件等操作。 ...
一个基于Delphi语言编写的OLE自动化控件器,让Delphi支持打开.xls格式的Excel表格文件,简要概述一下实现步骤:建立OLE对象、使Excel可见,并将本程序最小化,以观察Excel的运行情况、使Excel窗口不可见、注意:...
这个项目就是一个典型的示例,它演示了如何使用OleDb技术来读取Excel表格的数据,并在窗体上通过DataGridView控件进行展示。下面将详细讲解这个过程涉及的知识点。 首先,`OleDb`(OLE DB)是微软提供的一种数据...