我需要解析excel或google docs电子表格文件。列可能在文件之间以不同的顺序排序,但第一行中始终有标题。
我正在寻找一种方法,在使用Roo或其他类似用途的宝石阅读文件时,在引用单元格时使用列标题。
这是我希望能够做到的事情
无论列位置是什么,获取标题为小部件计数的列的第4个:
thisWidgetCount = cell[4,'Widget Count'];
我意识到我可以走到列并为列名构建一个标题哈希,但似乎这可能是某人已经包含在lib中的内容。
答案 0 :(得分:4)
你可以扩展Roo,或者只是写作帮助者:
oo = Openoffice.new("simple_spreadsheet.ods")
this_widget_count = tcell(oo, 3, 'Widget Count')
def tcell(roo, line, column_title)
column = first_column.upto(last_column).map{ |column| roo.cell(1, column) }.index( column_type ) + 1
roo.cell(line, column)
end
当然最好预先加载一个数组中的所有标题,因为在我们的例子中,你每次都会获取标题(这在性能上是个坏主意)