浣跨敤ruby鏉ユ搷浣渆xcel鏂囦歡棣栧厛闇瑕佸湪鑴氭湰閲屽寘鍚互涓嬭鍙?br /> require 'win32ole'
鎶妛in32ole鍖呭惈榪涙潵鍚?灝卞彲浠ラ氳繃鍜寃indows涓嬬殑excel api榪涜浜や簰鏉ュexcel鏂囦歡榪涜璇誨啓浜?
鎵撳紑excel鏂囦歡,瀵瑰叾涓殑sheet榪涜璁塊棶:
excel = WIN32OLE::new('excel.Application')
workbook = excel.Workbooks.Open('c:\examples\spreadsheet.xls')
worksheet = workbook.Worksheets(1) #瀹氫綅鍒扮涓涓猻heet
worksheet.Select
璇誨彇鏁版嵁:
worksheet.Range('a12')['Value'] #璇誨彇a12涓殑鏁版嵁
data = worksheet.Range('a1:c12')['Value'] #灝嗘暟鎹鍏ュ埌涓涓簩緇磋〃
璁劇疆鑳屾櫙鑹?/strong> 涓浜涚浉瀵瑰畬鏁寸殑浠g爜鐗囨 鍒涘緩涓涓猠xcel鏂囦歡騫朵繚瀛?/strong> 鎿嶄綔excel鏂囦歡鐨勫嚑涓噸瑕佸厓绱?br />
Excel => workbook => worksheet => range(cell) 浠ュ宸ヤ綔琛ㄤ腑鐨勬瘡涓崟鍏冩牸(range(cell))榪涜鍏蜂綋鐨勮鍐?-----------------鎸夌収榪欐牱鎿嶄綔鑲畾娌℃湁閿?涓嶈繃涓嬮潰鐨勮繖浜涜鍙ュ張璁╂垜鏈変簺鐤戞儜 excel鍙互鐩存帴鎿嶄綔鎵鏈夌殑灞炴?榛樿涓哄綋鍓嶆椿璺冪殑宸ヤ綔綈?宸ヤ綔琛?/p>
鏌愪釜鍗曞厓鏍? sheet.range("a1") a1鍒癱3鐨勫? sheet.range("a1", "c3") 鎴?sheet.range("a1:c3") 絎竴鍒? sheet.range("a:a") 絎笁琛? sheet.range("3:3") 鑾峰緱鍗曞厓鏍肩殑鍊? range.value #璇誨彇鍊?鏁板瓧涓嶄細鎴柇 瀵瑰崟鍏冩牸璁劇疆鍊?/strong> 榪唬璁塊棶: sheet.range("a1:a10").each{|cell|puts cell.value} 濡傛灉鑼冨洿鏄竴涓煩褰?鍒欎細鎸夎寰幆榪唬璁塊棶 block榪唬,騫舵墦鍗板嚭姣忚鐨勭涓涓?br />
sheet.range("b3:c7").rows.each{|r|puts r.cells(1,1).value}
鎵懼埌絎竴澶刟鍒楃殑鍊間負絀哄?/strong>
line = 1
while worksheet.Range("a#{line}")['Value']
line=line+1
end #line鐨勫間負絎竴澶勭┖鐧借鐨勮鏁?/p>
灝嗙涓鍒楃殑鍊艱鍏ュ埌涓涓暟緇勪腑
line = '1'
data = []
while worksheet.Range("a#{line}")['Value']
data << worksheet.Range("a#{line}:d#{line}")['Value']
line.succ!
end
灝嗘暟鎹啓鍏ュ埌excel琛ㄦ牸涓?/strong>
worksheet.Range('e2')['Value'] = Time.now.strftime '%d/%m/%Y' #鍗曚釜鍊?br />
worksheet.Range('a5:c5')['Value'] = ['Test', '25', 'result'] #灝嗕竴涓暟緇勫啓鍏?/p>
璋冪敤瀹忓畾涔?br />
excel.Run('SortByNumber')
worksheet.Range('a3:f5').Interior['ColorIndex'] = 36 #pale yellow
# 灝嗚儗鏅壊鎭㈠鎴愭棤鑹?br />
worksheet.Range('a3:f5').Interior['ColorIndex'] = -4142 # XlColorIndexNone constant
# 浣跨敤Excel constant 灝嗚儗鏅壊鎭㈠鎴愭棤鑹?br />
worksheet.Range('a3:f5').Interior['ColorIndex'] = ExcelConst::XlColorIndexNone
淇濆瓨
workbook.Close(1)
# 鎴?br />
workbook. 'myfile.xls'
# 榛樿璺緞鏄郴緇熷畾涔夌殑"鎴戠殑鏂囨。"
緇撴潫浼氳瘽
excel.Quit
require 'win32ole'
excel = WIN32OLE.new("excel.application")
excel.visible = true # in case you want to see what happens
workbook = excel.workbooks.add
workbook. ('c:\examples\spreadsheet1.xls')
workbook.close
鎴戠悊瑙g殑鏄痚xcel涓虹被鍚?workbook涓轟竴涓叿浣撶殑(excel鏂囦歡)瀹炰緥,鍒涘緩濂藉疄渚嬪悗,worksheet鏄疄渚?workbook,宸ヤ綔綈?涓殑涓涓伐浣滆〃,鐒跺悗鍙?/p>
excel.workbooks("Mappe1").worksheets("Tabelle1").range("a1").value #璇誨彇鍚嶄負Mappe1鐨別xcel鏂囦歡涓伐浣滆〃鍚嶄負Tabelle1鐨刟1鍗曞厓鏍間腑鐨勫?br />
excel.worksheets("Tabelle1").range("a1").value #浣滅敤鍚岀涓鏉¤鍙?br />
excel.activeworkbook.activesheet.range("a1").value #浣滅敤鍚岀涓鏉¤鍙?br />
excel.activesheet.range("a1").value #浣滅敤鍚岀涓鏉¤鍙?br />
excel.range("a1").value #浣滅敤鍚岀涓鏉¤鍙?/p>
瀵瑰崟鍏冩牸鐨勬搷浣?
range.text #璇誨彇鍊?榪斿洖涓哄瓧絎︿覆鏍煎紡,濡傛灉鍗曞厓鏍煎唴涓烘暟瀛?鏈夊彲鑳戒細琚埅鏂皬鏁扮偣鍚庣殑浣嶆暟
sheet.range("a1").text
sheet.range("a1").value
sheet.range("a1").value = 1.2345
鎴?br />
sheet.range("a1").value = '1.2345'
sheet.range("a1:b5").each{|cell|puts cell.value}
]]>