MS Excel 是否可以使用不可打印字符作为 CSV 文件中的字段分隔符?如果可以,如何使用?

MS Excel 是否可以使用不可打印字符作为 CSV 文件中的字段分隔符?如果可以,如何使用?

我刚刚发现很多字符编码都有用于分隔不同信息的非打印字符例如,ASCII 字符 31 是“单位分隔符”。似乎如果我可以使用这些字符之一作为“逗号/字符分隔值”(CSV)中的分隔符,我就可以避免在文本中可能出现的值转义问题,例如逗号。

是否可以让 MS Excel (2007) 使用“单位分隔符”而不是逗号?如果可以,我该怎么做?

编辑:

我如何输入不可打印的字符?如果我尝试在字符映射表中搜索 Unicode“001F”,我会看到一个高亮显示的空白框和“无可用字符”消息,如下所示:

在此处输入图片描述

我不想安装一个特殊的程序来生成不可打印的字符,但如果必须的话我可以这样做。

答案1

快速测试验证@bobSmith1432 有一个可行的解决方案。

我使用 Notepad++ 生成 ASCII 字符 31 并将其复制粘贴到字段中List separator:

在 Windows 7 中,转到Control Panel并选择Region and Language。在Format选项卡上单击Additional settings...按钮。这将打开窗口。在这里,通过从其他来源粘贴,将字段Customize Format中的逗号更改为 ASCII 字符 31。List separator:

将电子表格保存为 CSV 后,您可能应该立即将其改回逗号。

编辑:作为 Notepad++ 的替代方案,您可以使用常规的旧记事本。打开数字锁,打开记事本,按住 键Alt并按下031数字键盘。然后松开Alt键。按下CtrlA,然后CtrlC选择非打印字符并复制。然后您可以将字符粘贴到窗口中Customize Format

答案2

我刚刚想到了另一种方法。在要导出的电子表格中创建一个额外的工作表。在A1新工作表中,输入以下公式:

=CONCATENATE(Sheet1!A1,CHAR(31),Sheet1!B1,CHAR(31),Sheet1!C1)

更改Sheet1为要导出为 CSV 的工作表的名称。对其他列重复此模式。上述公式抓取列ABC。对于D,也使用以下内容:

=CONCATENATE(Sheet1!A1,CHAR(31),Sheet1!B1,CHAR(31),Sheet1!C1,CHAR(31),Sheet1!D1)

希望您能从中看出规律。将此单元格向下复制,复制的行数不限。CHAR(31)插入所需的 ASCII 字符。

然后,另存为 CSV,并仅导出此新工作表。由于您只有一列,因此不会添加逗号或其他分隔符。

答案3

更简单:

在记事本中打开文件。选择分隔符。按 ctrl-C 复制到剪贴板。现在在 Excel 中打开文件。选择“我的文件有分隔符”。单击下一步。将分隔符粘贴到提示的位置。

相关内容