2016-07-23 197 views
2

我需要在Ruby中创建Excel文档。我的要求是:多张表格,一些基本格式,能够在文档中的单元格之间创建超链接并创建下拉列表。我发现了两个宝石:axlsx和writeexcel,它们似乎提供了我想要的几乎所有东西。一件事是创建下拉菜单的默认值。我运行了两个宝石的数据验证示例,并且在两种情况下,包含下拉列表的单元格都是空的,直到人类选择一个值。Ruby:使用默认值在Excel中创建下拉列表

我需要的是单元格中显示的默认值。因此,如果%w[ maybe, yes, no ]是允许的值,那么我想要“可能”显示在单元格中。

我读了两个gem文档的相关部分,但我没有找到任何明显的方式说,我希望在下拉列表中选择默认值。

如果你可以建议任何其他方法可以给我我想要的东西,我就不会感情上附加到axlsx或writeexcel,我会成为一个快乐的露营者。

+0

此外,还有一个袋鼠宝石,看看它提供了一些数据验证。 –

+0

From http://www.rubydoc.info/gems/roo/2.3.2“Roo实现所有常见电子表格类型的读取访问权限。”它看起来像Roo允许阅读电子表格。我需要写一个。 –

回答

1

好的,所以我用writeexcel gem找到了我的问题的解决方案。我不确定这是愚蠢的还是显而易见的,但它对我来说足够好。我所做的是将我的默认值写入单元格,然后将下拉列表添加到同一单元格。下面是基于data_validate.rb例如文件代码:

#!/usr/bin/ruby -w 
# -*- coding: utf-8 -*- 

require 'writeexcel' 

workbook = WriteExcel.new('default_dropdown.xls') 
worksheet = workbook.add_worksheet 
worksheet.set_column('A:A', 32) 
txt = 'Select a value from a drop down list' 
worksheet.write(1, 1, 'open') 
worksheet.write(1, 0, txt) 
worksheet.data_validation(1, 1, 
    { 
     :validate  => 'list', 
     :source   => ['open', 'high', 'close'] 
    }) 

workbook.close