如何将yaml转换为电子表格?

时间:2010-11-29 17:14:51

标签: ruby yaml spreadsheet

如何使用ruby转换yaml文件并在单元格上保留缩进格式到电子表格文件。

像这样的yaml文件:

https://github.com/rails/rails/blob/v2.3.10/activesupport/lib/active_support/locale/en.yml

2 个答案:

答案 0 :(得分:4)

您还没有明确说明您希望此电子表格看起来像什么,所以我不能具体但您可以使用YAML库将文件读入数据结构,然后将数据结构转换为一个像表(字符串数组的数组)然后使用CSV库将其输出到文件。

require 'yaml'
require 'csv'

yaml_txt = File.read 'input.yaml'
yaml_data = YAML.load yaml_txt

csv_table = [
    [1,'hello world', true], 
    ['a', 'b', 3.14159, 'c', 2, 3e8], 
    [nil, 'another row', 'bla']
]
#replace this^ with something that converts the yaml_data into a 2D array

File.open 'output.csv', 'w' do |f|
    f.puts( csv_table.map do |row|
        CSV.generate_line row
    end.join "\n" )
end

当前示例将产生:

1,hello world,true
a,b,3.14159,c,2,300000000.0
,another row,bla

在output.csv。

然后,您可以使用以下选项打开CSV电子表格:

alt text

答案 1 :(得分:1)

认为,最好使用空字符串而不是“\ n”

来连接行