使用列标题或标题解析Excel和Google文档电子表格

时间:2011-05-22 18:55:57

标签: ruby excel google-docs

我需要解析excel或google docs电子表格文件。列可能在文件之间以不同的顺序排序,但第一行中始终有标题。

我正在寻找一种方法,在使用Roo或其他类似用途的宝石阅读文件时,在引用单元格时使用列标题。

这是我希望能够做到的事情

无论列位置是什么,获取标题为小部件计数的列的第4个:

thisWidgetCount = cell[4,'Widget Count'];

我意识到我可以走到列并为列名构建一个标题哈希,但似乎这可能是某人已经包含在lib中的内容。

1 个答案:

答案 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

当然最好预先加载一个数组中的所有标题,因为在我们的例子中,你每次都会获取标题(这在性能上是个坏主意)