Emacs:将CSV导入组织

Emacs通过组织模式的名称有一个很好的扩展。

我希望能够轻松地将CSV文件加载到组织模式中,而不会导致严重的悲伤。 我所能找到的只是表格导入或表格捕获,简而言之,它们几乎不能很好地工作。

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

有没有一个函数或perl脚本,可以运行将csv文件转换为组织模式格式?

谢谢!


从组织模式手册:

Cc | 将活动区域转换为表格。 如果每行至少包含一个TAB字符,则该函数假定材料是制表符分隔的。 如果每行都包含一个逗号,则假定使用逗号分隔值(CSV)。 如果不是,则将行以空格分割成字段。 您可以使用前缀参数来强制使用特定的分隔符:Cu强制CSV,Cu Cu强制使用TAB,数字参数N表示至少有N个连续空格,或者TAB将作为分隔符。 如果没有活动区域,则该命令将创建一个空的组织表。

因此,只需将数据粘贴到组织文件中,选择它并执行Cu Cc |


我假设你想要将CSV转换成组织模式表格 。 如果情况并非如此,你可能希望在你的问题中更加明确输出格式。

像这样的东西应该这样做,或者至少让你有一个起点,你可以破解:

  #!/usr/bin/perl

  use strict;
  use warnings;

  use Text::CSV;

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

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


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

尝试这个:

;; Insert a file and convert it to an org table
(defun aleblanc/insert-file-as-org-table (filename)
  "Insert a file into the current buffer at point, and convert it to an org table."
  (interactive (list (ido-read-file-name "csv file: ")))
  (let* ((start (point))
    (end (+ start (nth 1 (insert-file-contents filename)))))
    (org-table-convert-region start end)
    ))
链接地址: http://www.djcxy.com/p/61861.html

上一篇: Emacs: import a CSV into org

下一篇: Java Equivalent for ASP.NET MVC Areas