3

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

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

在 LibreOffice(我确定是 Excel)中,我可以在“名称框”中为该单元格指定一个名称。见下图,我给 B2 起了一个名字“CUSTOM_NAME”。

使用

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

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

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

如果 gem 已经不允许它,我将如何自己实现它?

4

2 回答 2

0

下面是如何使用creek gem 进行操作,它在解析大型 xlsx 文件时比电子表格gem快得多。

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"]
于 2016-07-06T23:09:30.050 回答
0

尽管其他答案可能是一个不错的选择(我个人没有未经证实),但这个问题的答案是否定的。

电子表格问题 - 功能 - 按名称检索单元格,而不仅仅是行和列

目前无法使用电子表格 gem 按名称检索单元格。

于 2016-07-11T13:41:04.423 回答