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