[这里是一个主意:我有一个2D数组,其中包含带有换行符\n
的不转义的字符串,偶而还有一些字符也像;
一样用作CSV分隔符。
我需要能够轻松地将这样的数据从远程Ruby控制台的输出复制并粘贴到本地Excel文件或在线Google电子表格中。
在我遇到使用换行符和分号的数据之前,它一直都可以正常工作:
class Array
def puts_csv
map { |row| row.join(';') }.each(&method(:puts))
end
end
[["A1", "B1"], ["A2", "B2"], ["A3", "B3"]].puts_csv
# =>
A1;B1;
A2;B2;
A3;B3;
这会在控制台上输出一个列表,我可以很容易地将其复制/粘贴到电子表格应用程序中,然后选择;
作为输入定界符。
但是现在我必须处理包含应该转义的字符的字符串输入,例如逗号,分号或换行符。这完全破坏了我的数据复制/粘贴。
样本数据:
array2D = [
["name", "school", "comment"],
["Jean François", "ENS", "Lorem ipsum dolor sit amet; consectetur,\nadipiscing elit, sed do eiusmod tempor"
]
我当前的方法给出了三行,因为它使用分号分隔符来分隔行:
name;school;comment
Jean François;ENS;Lorem ipsum dolor sit amet;consectetur,
adipiscing elit, sed do eiusmod tempor
目标可能类似于以下内容:
name;school;comment
Jean François;ENS;"Lorem ipsum dolor sit amet; consectetur,
adipiscing elit, sed do eiusmod tempor"
[感谢“ How to copy 2D array from console into a CSV/Excel file and properly handle newlines and separators”,我意识到有一种处理换行的技巧,首先将其复制到带有转义引号的Sublime Text文件中,然后在Excel中打开它。
由于将换行符仍视为新行,因此仍然很难将此类数据直接复制到电子表格中。
此代码是从远程服务器生成的,而我需要将数据加载到本地电子表格中。由于多种原因,通过FTP或SMTP交换文件不方便。这只是很少发生的事情,因此不值得在代码库中添加代码来处理此类导出,因此我主要依靠控制台补丁轻松导出某些数据。
对于常规出口,我们在其他应用程序中提供了一些代码。
如何生成可轻松粘贴到电子表格中的控制台输出?
[这里是个主意:我有一个2D数组,其中包含带有换行符\ n的非转义字符串,有时甚至还有像CSV分隔符之类的字符,如;。我需要能够轻松复制并粘贴此类...