首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出Excel (xls或xlsx或CSV)工作表,并在列上应用验证/规则

导出Excel (xls或xlsx或CSV)工作表,并在列上应用验证/规则
EN

Stack Overflow用户
提问于 2015-02-06 12:15:45
回答 1查看 3.4K关注 0票数 3

我想导出一个模板Excel表格,以便用户可以填写它,并可以上传他们的数据。

在导出的工作表中,我希望将一些验证规则放在列值上。因此,用户只能按照所应用的规则填充值,这些规则只能是数字或4-5唯一值(例如颜色-蓝色、绿色、黑色)。

到目前为止,我已经阅读了Roo和电子表格gem的文档,找到了定义列规则的任何方法,但是没有找到任何东西。现在,只要在用户上传时验证工作表,如果插入无效值,则显示错误。

寻找类似这样的解决方案- 如何在使用POI生成的excel表中创建相关的下拉列表?

欢迎任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-11 04:10:15

使用Axlsx宝石解决了这一需求。

Axlsx提供了很好的功能。对于验证,gem有Axlsx::DataValidation

它允许添加数据类型的验证::whole, :decimal, :date, :time, :textLength, :list, :custom。对于每一个也可以指定公式。

为了只获得颜色列的几个颜色值,我添加了验证和导出了工作表,保存了工作表,并导出如下:

代码语言:javascript
复制
p = Axlsx::Package.new

p.workbook.add_worksheet(name: "dropdown") do |ws|
  ws.add_row ["Color"]
  ws.add_data_validation("A2:A1000", {
    :type => :list,
    :formula1 => 'Red orange Blue White',
    :showDropDown => false,
    :showErrorMessage => true,
    :errorTitle => '',
    :error => 'Please use the dropdown selector to choose a valid color',
    :errorStyle => :stop,
    :showInputMessage => true,
    :promptTitle => 'Color',
    :prompt => 'Please select a valid color'})
end

p.serialize 'data_validation.xlsx'

到目前为止,我只能指定有限的行范围,以便在工作表中应用验证。

如果有人可以添加如何指定整个列进行验证,这个答案将是一个完美的解决方案。

谢谢。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28365618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档