我正在使用axlsx ruby gem创建与Excel兼容的.xlsx文件.我无法弄清楚如何覆盖由其自动类型检测生成的单元格类型.对于类型string的Active Record模型属性,gem将Excel单元格格式设置为General,但我希望它显式使用Text.这样我就可以避免从邮政编码等中删除前导零.
谁知道怎么做到这一点?
ran*_*dym 34
您可以使用添加行上的类型选项覆盖数据类型.
就像是:
worksheet.add_row ['0012342'], :types => [:string]
Run Code Online (Sandbox Code Playgroud)
如果你需要任何帮助,那就抓住我的irc(JST)吧.
最好
randym
我在repo中为examples/example.rb添加了一个示例.
wb.add_worksheet(:name => "Override Data Type") do |sheet|
sheet.add_row ['dont eat my zeros!', '0088'] , :types => [nil, :string]
end
Run Code Online (Sandbox Code Playgroud)
https://github.com/randym/axlsx/blob/master/examples/example.rb#L349
小智 6
format_code: '@' 对你有用。请找到以下代码以供参考。
def default_data_type_as_string
@xlsx_package = Axlsx::Package.new
@workbook = @xlsx_package.workbook
@worksheet = @workbook.add_worksheet(:name => "Introduction")
default_style = @workbook.styles.add_style({ format_code: '@' })
row_data_array = ['1', '2%', '3$']
@worksheet.add_row row_data_array, :style => [nil, default_style, nil]
@xlsx_package.serialize('default_data_type_as_string.xlsx')
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10841 次 |
| 最近记录: |