当前位置:  开发笔记 > 编程语言 > 正文

Emacs:将CSV导入org-mode

如何解决《Emacs:将CSV导入org-mode》经验,为你挑选了2个好方法。

Emacs有一个非常好的扩展名为org-mode.

我希望能够轻松地将CSV文件加载到组织模式而不会产生明显的悲痛.我所能找到的只是表导入或表捕获,简单地说,它甚至不能很好地工作.

请注意,我的部分问题是文本字符串,其中包含逗号.1,2,3,4不同于1,2,3,4".

是否有一个函数或perl脚本可以运行将csv文件转换为org-mode格式?

谢谢!



1> Don Womick..:

从组织模式手册:

抄送| 将活动区域转换为表格.如果每行包含至少一个TAB字符,则该函数假定材料是制表符分隔的.如果每行包含逗号,则假定使用逗号分隔值(CSV).如果不是,则将行在空白处拆分为字段.您可以使用前缀参数强制使用特定分隔符:Cu强制CSV,Cu Cu强制TAB和数字参数N表示至少N个连续空格,或者TAB将是分隔符.如果没有活动区域,则此命令将创建一个空的Org表.

因此,只需将数据粘贴到组织文件中,然后选择它即可C-u C-c |.


以防万一(像我一样)你的键绑定被搞砸了和Cu Cc | 不工作,调用的直接函数(选择要转换的区域后)是*Mx org-table-convert-region*
@DonWomick如果数据的逗号和换行符用双引号括起来,这不起作用:`a,b,c,"def, ghi"`

2> genehack..:

我假设您要将CSV专门转换为组织模式.如果情况并非如此,您可能希望在问题中更明确地了解输出格式.

这样的事情应该这样做,或者至少为你提供一个你可以破解的起点:

  #!/usr/bin/perl

  use strict;
  use warnings;

  use Text::CSV;

  my $csv = Text::CSV->new();

  while ( my $line =  ) {
    if ( $csv->parse( $line )) {
      my $str = join '|' , $csv->fields();
      print "|$str|\n";
    }
  }


  __DATA__
  1,2,3,4
  1,2,"3,4"

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有