как конвертировать YAML в электронную таблицу? - PullRequest
1 голос
/ 29 ноября 2010

как я могу использовать ruby ​​для преобразования файла yaml и сохранения формата отступа для ячеек в файле электронной таблицы.

файл yaml так:

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

Ответы [ 2 ]

4 голосов
/ 29 ноября 2010

Вы не четко указали, как должна выглядеть эта таблица, поэтому я не могу быть конкретным, но вы можете использовать библиотеку 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 голос
/ 25 июня 2011

думаю, лучше объединять строки с пустой строкой, а не "\ n"

...