Скрипт Ruby для чтения последней заполненной ячейки в столбце
Мне нужен код рубина, чтобы прочитать столбец а и найти, где заканчивается последняя заполненная ячейка в столбце. На загруженном изображении последние заполненные данные находятся в ячейке "A21". мне нужно знать адрес этой ячейки через код рубина.
2 ответа
Решение
Я хотел бы сделать с помощью Ruby stdlib WIN32OLE
,
require 'win32ole'
# create an instance of the Excel application object
excel = WIN32OLE.new('Excel.Application')
# make Excel visible
excel.visible = true
# open the excel from the desired path
wb=excel.workbooks.open("C:\\Users\\test.xlsx")
# get the first Worksheet
wbs= wb.Worksheets(1)
# value of the constants I picked up from
# http://techsupt.winbatch.com/ts/T000001033005F9.html
rng = wbs.range("1:1").SpecialCells(11) # value of 'xlCellTypeLastCell' is 11
rng.value # => "i"
rng.address # => "$A$21"
# to get the row and column number
row,col = rng.row,rng.column
[row,col] # => [21,1]
Посмотрите на документацию MSDN SpecialCells
,
Вы можете получить значение xlCellTypeLastCell
из версии MSExcel
установлен на вашем компьютере. Просто делать ALT+F11
-> F2
-> поиск константы там:
Попробуйте использовать гем "электронная таблица"
book = Spreadsheet.open 'myexcel.xls';
sheet1 = book.worksheet 0
last_value = nil
sheet1.each do |row|
last_value = row[0].present? && row[0]
end
last_value
=>
"i"