导出 Excel(xls 或 xlsx 或 CSV)sheet,并在列上应用验证/规则
Export Excel (xls or xlsx or CSV) sheet with validation/ rule applied on column
我想导出一个模板 Excel sheet,以便用户可以填充它并上传他们的数据。
在导出的 sheet 中,我想在列值上添加一些 validation 或 rule。因此,用户只能根据应用的规则填写值,该值只能是数字或 4-5 个唯一值(例如颜色 - 仅限蓝色、绿色、黑色)。
到目前为止,我已经浏览了 Roo 和 Spreadsheet gem 的文档,以找到任何在列上定义规则的方法,但没有找到任何东西。
现在只是在用户上传时验证 sheet 并在插入无效值时显示错误。
正在寻找类似这样的解决方案 - How to create dependent drop downs in excel sheet generated using POI?
欢迎任何帮助。
使用 Axlsx gem 解决了这个要求。
Axlsx 提供了很棒的功能。对于验证 gem 有 Axlsx::DataValidation
.
允许为数据类型添加验证::whole, :decimal, :date, :time, :textLength, :list, :custom
。每个也可以指定公式。
为了仅获得颜色列的少量颜色值,我添加了验证并导出 sheet 保存 sheet 并导出如下:
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'
到目前为止,我只能指定有限范围的行以在 sheet 中应用验证。
如果有人可以添加如何指定整列进行验证,这个答案将是一个完美的解决方案。
谢谢。
我想导出一个模板 Excel sheet,以便用户可以填充它并上传他们的数据。
在导出的 sheet 中,我想在列值上添加一些 validation 或 rule。因此,用户只能根据应用的规则填写值,该值只能是数字或 4-5 个唯一值(例如颜色 - 仅限蓝色、绿色、黑色)。
到目前为止,我已经浏览了 Roo 和 Spreadsheet gem 的文档,以找到任何在列上定义规则的方法,但没有找到任何东西。 现在只是在用户上传时验证 sheet 并在插入无效值时显示错误。
正在寻找类似这样的解决方案 - How to create dependent drop downs in excel sheet generated using POI?
欢迎任何帮助。
使用 Axlsx gem 解决了这个要求。
Axlsx 提供了很棒的功能。对于验证 gem 有 Axlsx::DataValidation
.
允许为数据类型添加验证::whole, :decimal, :date, :time, :textLength, :list, :custom
。每个也可以指定公式。
为了仅获得颜色列的少量颜色值,我添加了验证并导出 sheet 保存 sheet 并导出如下:
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'
到目前为止,我只能指定有限范围的行以在 sheet 中应用验证。
如果有人可以添加如何指定整列进行验证,这个答案将是一个完美的解决方案。
谢谢。