使用Excel编辑文件而不重新格式化


2

我使用的程序只导入csv文件,但前5列必须为空,没有任何数据。

当我编辑文件以添加或更改某些数据并保存csv文件时,将自动删除必需的前5个空闲列。

我怎么能阻止这个?

Answers:


2

您可以使用Notepad ++和RegEx手动将所需的逗号插入输出文件中。

这是我的测试文件。我将其保存为Excel并选择了CSV格式。

包含5个空白列的CSV文件,然后是2个填充列

打开它后,我们可以看到它生成您正在谈论的CSV错误。非常感谢,微软!

带有2个填充列的CSV文件

打开Notepad ++。打开RegEx替换和环绕。然后键入以下代码以进行查找和替换。

Find: ^(\w)
Replace: ,,,,,\1

RegEx在Notepad ++ Pt 1中每行的开头添加5个逗号

点击全部替换进行更改。然后保存文档。

RegEx在Notepad ++ Pt 2中每行的开头添加5个逗号

在Microsoft Excel中重新打开该文件,您将回到开头的5个空白列。:)

包含5个空白列的CSV文件,然后是2个填充列


+1,我的建议稍微优雅一点(也使用Notepad ++ :),我从未注意到它的Find + Replace支持RegEx!
Saggio

1

您可以=""在单元格A1中输入公式(表示空字符串)。这样,当您csv再次将其保存时,Excel将保留空白列。

但请注意,由于公式实际上不会写入csv文件,因此每次重新打开文件后都需要使用此技巧。


我尝试过,但似乎当我转换excel文件回到到csv格式正在发生变化,该方案不导入回来...
user308314

介意在保存之前和之后发布csv文件内容的摘录?您可以使用记事本打开csv文件以读取其内容。
Kenneth L

是的,我可以用记事本打开并阅读,如果我在记事本中更改一些数据而不是保存为csv我可以导入我的程序。但问题是如果我通过excel打开它并更改相同的数据(我在记事本中更改了)并且在转换回csv之后它没有导入...
user308314 2014年

我的意思是,你可以在这里发布两三行你的csv吗?因为我发现自己的测试数据很好。另外,您使用的Excel版本是什么?
Kenneth L

1

在记事本中打开* .csv文件,按住Alt键,在第一行的开头,将鼠标一直向下拖动到最后一行以启用Box Selection。然后输入5个逗号,这些逗号将在所有行上填充它们。

或者,您可以按住Alt+ Shift然后使用箭头键

这也无需在Excel中打开文件,这可能会导致原始数据出现问题。

编辑:经过一些快速研究后,似乎Notepad在Windows中使用本机应用程序不支持此功能,但在多个其他编辑器应用程序中受支持。您可以下载类似Notepad++(免费软件)的内容来完成此任务。


+1教我一些关于Notepad ++的新东西。您的解决方案也比我的快。:D
AdmiralAdama

0

如果您愿意,插入带有虚拟列名称的标题行,这将强制excel保留空列。


@ chipperyman573它确实提供了一个答案,虽然可能不正确(我还没有测试过),但它本身就是一个答案并解决了原始问题。
那个巴西人

对不起,我昨晚误读了。
Jon

0

您的问题似乎暗示您使用默认设置(例如,双击)使用Excel打开CSV文件。根据您的源文件(如您的情况),这可能会导致各种数据损坏。您应该注意有关csv文件(纯文本数据)的一些问题,以避免在使用Excel操作数据时数据损坏。

我在这里写了这些问题的深入概述:http//theonemanitdepartment.wordpress.com/2014/12/15/the-absolute-minimum-everyone-working-with-data-absolutely-positively-must-know -关于文件类型编码-定界符和-数据类型-NO-借口/

您应该学习如何从Excel导入数据或从Excel导出数据,同时牢记上述问题。

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.