如何从 Excel 中的验证列表中获取单元格行

How to get the cell row from validation list in Excel

我正在 Ruby Rails 项目上工作。我有语言和类别 tables,类别 table 是语言的子项。我有一个 xlsx 文件来创建新类别,而不是使用 html 中的表单。步骤是 1) 下载包含带有语言列表的工作表的模板,2) 在第二个工作表中,用户可以添加新类别,3) 上传带有添加字段的 xlsx 模板。

我生成的模板看起来像这样(这是用 write_xlsx gem 完成的):

语言工作表:

编号 |姓名

1 |语言1

2 |语言2

新类别工作表:

姓名 |语言

在新的类别工作表中,语言列有一个指向语言工作表名称的列表验证。因此,例如,如果用户添加了一个新类别,它将如下所示:

--姓名--- | --语言

类别 1 |语言1

我正在使用 js-xlsx 库读取 javascript 中上传的文件。这会生成如下所示的 json:

{姓名:"category1",语言:"language1"}

但我需要知道在类别中选择的语言 ID 才能将其正确保存在数据库中。我可以使用该名称在数据库中搜索语言,但两种语言共享相同的名称可能会导致问题。所以我需要的是,就像在示例中一样,选择的语言是 language1,它位于 B2 位置,我需要这个行位置。有没有办法知道 language1 在 B2 位置,所以我可以获得包含 ID 的 B1 单元格?

我最终做的是在语言名称字段中添加行索引,如下所示:“1 - language1”。所以我知道选择了哪一行并从该行获取 id。我不认为这应该是正确的方法,但它是一个解决方案。