从Linux导入Windows的csv文件


1

我想知道为什么下面提到的两个csv文件都没有区别。

我在Linux中得到了一个table.csv文件,将它作为附件发送到邮件中,然后保存并在我的Windows excel应用程序中打开后,它很乱,列与分散的数据不对齐。

但是,当我打开一个excel文件并转到“数据”选项卡,然后从“获取外部数据”类别中单击“来自文本”,然后选择我刚才使用的同一 csv文件时,表格形式的输出就可以很好地对齐了干净。

我的最终目标是通过将其直接附加到邮件中,从而直接从linux到excel窗口中获得精确对齐的输出,而无需采取额外的步骤使excel并选择从文本中获取外部数据。

我真的不能弄清楚为什么两个相同的csv文件有这样的区别,要克服此问题,是否需要编写脚本来操纵Excel?

感谢您的任何建议。我对此真的很好奇。

第一 数据仅在第一列(colA)

第二
这在每一列中都很好地对齐

对照


4
当Windows出现混乱时,您使用什么应用程序在Windows中打开它?您将Excel描述为可以很好地处理文件,并且您的目标是在Excel中打开它,所以我没有找到问题所在。Windows使用CR + LF作为行尾,而Linux仅使用LF。如果这是在Linux中准备的,那么行尾到底是什么使文件显得混乱?
fixer1234

@ fixer1234,您好,两个都在Windows中使用excel应用程序打开。谢谢
ExcelNovice '17

在我的目标中提到过吗?嗯..我只想单击邮件中的附件文件,它的格式就会很好。无需额外步骤即可先打开excel,然后单击这些按钮。谢谢
ExcelNovice '17

第一个示例将所有四个值放在单个单元格中。它看起来像一个定界符问题。也许是制表符分隔而不是逗号分隔,并且Excel不能正确猜测。电子邮件附件不应做任何更改,但也许将其放入Linus的电子邮件包装中并在Windows中提取会对其产生影响。尝试在十六进制编辑器中打开两个文件,然后比较前几条记录。
fixer1234 '17

@ fixer1234,您好,我用Notepad ++打开了这两个文件。令人惊讶的是,第一个在不可见的列中显示了对齐良好的数据。但是第二个节目显示乱码。我不确定是否与以下事实有关:获取外部数据,然后在记事本++中打开文件之前将文件保存为.xlsx扩展名。谢谢
ExcelNovice

Answers:


1

如fixer1234所述,这很可能与Linux vs Windows中的行尾有关。这取决于准备文件的位置。有关堆栈溢出的问题,还有其他一些站点询问如何解决此问题。我想,如果您将文件保存在Windows中,然后将其发送回linux,然后在vi中打开,您也会在该端看到奇怪的字符(在行的末尾有^ M)。

没有更多关于您所看到的内容的详细信息,我无法真正告诉您如何修复它,但是在此处此处有一些示例说明了如何在一侧或另一侧对其进行修复。

如果您提供了发生的情况的详细示例,那么我可以给出一个更清晰的示例,说明如何解决您的问题。


@trueCamelType,您好,我为工作表附加了一些屏幕截图,希望您可以看一下。我不确定是否可以通过编写perl或shell脚本(以在我的原始csv文件所在的linux中执行该脚本)来解决此问题,因为我必须在其中添加一个额外的列“ Overall”计算平均分数。谢谢
ExcelNovice '17

@ExcelNovice如果唯一的问题是在excel中默认打开文档时,它的格式不正确,那根本不是问题。Excel知道应该用逗号(.csv文件)分隔哪些内容。如果您只在逗号和逗号之间插入逗号,则会在新列中插入一个标签,而不是一个制表符。如果没有逗号,则所有结果都在同一列中,这是预期的结果。
trueCamelType '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.