最近因为工作需要,又去接触了一下ruby ole的一些知识,不得不说,ruby相对于JAVA来说,用起来确实轻巧不少。但是相对来说,ruby的资料要少些,像关于WIN32OLE的资料就更少了,那个API文档里面只是零星的举了一个例子,到底有些哪API都不清楚,更不要那些API的意思了。不过还好,网上其它地方也有些零星的资料,基本上够用了。
其它ruby的代码很简单,一看就懂,为了方便以后查找,所以把最近写的一个简单程序帖出来,做个记录。
# coding: utf-8
=begin
ruby 2.0 xp 32; sublime text3
=end
require 'win32ole'
excel = WIN32OLE::new('excel.Application')
# excel_file="D:\\rubyworkspace\\户籍人口登记表.xls";
excel_file="D:\\rubyworkspace\\test.xls";
workbook = excel.Workbooks.open(excel_file);
# @worksheet = workbook.Worksheets("户籍人口登记表")
@worksheet = workbook.Worksheets(1)
data = @worksheet.UsedRange.Value
#当前数据条数
p data.size
@worksheet.Range("N3:N998").each do |cell|
if cell.value != nil
cell.value = cell.value
end
end
@worksheet.Range("M3:M998").each do |cell|
if cell.value != nil
cell.value = cell.value
end
end
@worksheet.range("M3:N4").value = "sss"
#Setting it to True is a simple way of preventing the "Do you wish to save..." dialog appearing when Excel is closed
workbook.saved = true
workbook.save
# workbook.saveas('d:\\rubyworkspace\\test1.xls')
# @worksheet.Rows("3:998").Delete()
# workbook.saveas('d:\\rubyworkspace\\test.xls')
workbook.close
excel.quit
cell.value = cell.value
这个代码有什么用,有用的,主要是EXCEL里面的内容有时候是用函数生成,但是解析的时候要求必须是文本,上面代码的功能是将函数生成的结果替换成文本。