![](/img/trans.png)
[英]Converting an Excel file with special characters to a CSV with these preserved
[英]Creating CSV file with special characters in fields
我已经在stackoverflow上寻找了类似的问题,但没有找到任何问题。 我想以CSV格式导出表格,以便可以将其导入Excel。 每个单元格包含文本,每行具有相同数量的列。 我尝试过的格式如下:
"d1"|"d2"|"d3"|"d4"
其中d1,d2,d3,d4是我要放入每个单元格中的原始字符串。 我有以下问题:
您是否知道如何解决上述问题? 是否有一些有关这些特定问题的在线文档? 从昨天开始我一直在搜索,但没有找到任何东西。
Excel支持值中的换行符。 例如,使用Excel用户界面,可以通过为每个换行符键入Alt-Enter来将"foo\\n\\bar\\nbaz"
放入单元格中。
关于Excel的棘手问题是,在使用逗号作为小数点的语言环境中,Excel使用冒号作为字段定界符。 没有任何Excel可以读取的通用/国际格式。
如果Java中没有用于读取/写入CSV文件的软件包,我会感到非常惊讶。 Python有一个允许您在输入和输出上指定定界符,双引号char,记录分隔符等的代码。
但是,如果要编写自己的代码,请对要编写的每一行遵循以下伪代码:
for each field in the row:
if field contains quotechar:
double all quotechars in field
field = quotechar + field + quotechar
else if field contains delimiter, CR, or LF:
field = quotechar + field + quotechar
else:
avoid waste of space and ugly visual impact by NOT doing unneeded quoting
join field strings separated by delimiter
append CR LF
write the row string using binary mode (so Windows runtime doesn't give you 2xCR)
请仔细注意(1)以上所有内容均以8位字符为前提(2)我避免使用模糊的术语“换行符”。
我发现最好用逗号分隔来完成CSV,并引用值,这样就不会误解值中的逗号。 用双引号来引用报价。 因此,以下四个值:
one
two
three with "quoted" value
four
变成:
one,two,"three with ""quoted"" value",four
我认为标准CSV实现不可能支持值中的换行符; 特别是不在Excel中。 尝试在Excel中使用换行符创建单元格(甚至可以吗?)并另存为CSV,以查看是否可行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.