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

发布于 2024-10-05 04:57:28 字数 293 浏览 6 评论 0原文

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

像这样的 yaml 文件:

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

how can i use ruby to convert a yaml file and keep on the indent format over cells to spreadsheet file.

the yaml file like this:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

温柔女人霸气范 2024-10-12 04:57:28

您还没有明确说明您希望此电子表格是什么样子,所以我无法具体说明,但您可以使用 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

You haven't clearly stated what you want this spreadsheet to look like so I can't be specific but you can use the YAML library to read the file into a data structure, then convert the data structure into one like a table (array of arrays of strings) then use the CSV library to output it to a file.

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

The current example will produce:

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

in output.csv.

You can then open the CSV spreadsheet with the following options:

alt text

心碎的声音 2024-10-12 04:57:28

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

think, it's better to join rows with an empty string rather than "\n"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文