使用“电子表格”按名称访问单元格 gem

Access a cell by name using the `spreadsheet` gem

如果我有一个类型为 Spreadsheet::Excel::Worksheetsheet 变量,现在我们可以通过以下方式访问 B2

MY_CUSTOM_CELL = [1, 1]
sheet[*MY_CUSTOM_CELL] # => Contents of B2

在 LibreOffice 中(我确定 Excel),我可以为 "Name Box" 中的单元格指定一个名称。看下图,我给B2取了个名字"CUSTOM_NAME".

不是使用 row/column 坐标访问该单元格的内容,是否可以通过名称 访问它?如果单元改变位置,这将使它更容易适应未来的变化。我想做类似的事情:

sheet.find("CUSTOM_NAME") # => Contents of B2

我正在查看找到的文档 here,但无法找到我要查找的内容。

如果 gem 不允许,我将如何自己实施?

下面是如何使用 creek gem,它比 电子表格 [=17 快得多=] 解析大型 xlsx 文件时。

require 'creek'

workbook = Creek::Book.new some_file.xlsx # Change the file name to suit your needs
worksheet = workbook.sheets[0] # Change the worksheet index to suit your needs. 

# Create hash with cell names (e.g., A1, B5) as keys and cell values as values
cells = Hash.new
  worksheet.rows.each do |row|
    cells.merge!(row)
  end
end

# To access the cell values, just use the corresponding hash keys

# Set value for the A1 cell
cells["A1"] = "foo"

# Print value of C3 cell
puts cells["C3"]

虽然其他答案可能是一个不错的选择(我个人没有验证过),但这个问题的答案是没有

Spreadsheet Issue - Feature - Retrieve a cell by its name, not just row and column

目前无法使用电子表格 gem.

按名称检索单元格