如何使用Excel打开和保存CSV文件中的前导撇号而不丢失数据?
我们试图使用Python中的CSV文件,使用户可以在Excel中编辑它们,而不会丢失数据。然而,在Excel中使用撇号来转义文本,再加上CSV格式的实现似乎阻止了这一点。为清楚起见,我将使用以下术语:如何使用Excel打开和保存CSV文件中的前导撇号而不丢失数据?,excel,csv,escaping,data-loss,Excel,Csv,Escaping,Data Loss,我们试图使用Python中的CSV文件,使用户可以在Excel中编辑它们,而不会丢失数据。然而,在Excel中使用撇号来转义文本,再加上CSV格式的实现似乎阻止了这一点。为清楚起见,我将使用以下术语: quoted表示使用双引号引用文本的CSV单元格,unquoted表示不使用双引号引用文本的单元格 撇号转义是指Excel单元格,该单元格在Excel的基础值中有一个前导撇号作为文本标记,但显示时没有前导撇号 根据实验,似乎: CSV单元格中的单个未加引号的'将在Excel中作为包含撇号转义
- quoted表示使用双引号引用文本的CSV单元格,unquoted表示不使用双引号引用文本的单元格
- 撇号转义是指Excel单元格,该单元格在Excel的基础值中有一个前导撇号作为文本标记,但显示时没有前导撇号
- CSV单元格中的单个未加引号的
将在Excel中作为包含撇号转义空白字符串的单元格打开(基础值'
,显示为空单元格)'
- CSV单元格中的单个带引号的
将在Excel中打开,作为包含撇号转义的单个撇号的单元格(底层值,
,显示为'
)'
- 包含撇号转义空白字符串的Excel单元格将另存为空CSV单元格
- 包含撇号转义撇号的Excel单元格将另存为单个不带引号的
“
PS我知道这一点;但是,我还没有找到任何专门解决上述问题的文档。一个简单的解决方案是在将字符串存储到Excel中之前替换单引号(撇号)……此示例使用tilda
Sub ImportFile()
Close #1
Open "C:\TestFolder\TestFile.csv" For Input As #1
j = 1
Do While Not EOF(1)
Line Input #1, TextLine
TextLine = Replace(TextLine, "'", "^")
Cells(j, 1).NumberFormat = "@"
Cells(j, 1) = TextLine
j = j + 1
Loop
Close #1
End Sub
这应该将所有数据放在一列中
从那里,您可以使用文本到列解析数据,并根据您的选择进行处理
保存之前,请务必更换瓷砖。正确;为了澄清这一点,我希望人们通过双击文件(扩展名为
.csv
)来打开该文件,这样会使运行宏代码变得笨拙。我想看看Excel的默认打开和保存csv文件是否可能不丢失数据