我需要为Excel生成一个文件,该文件中的一些值包含多行.
那里还有非英文文本,所以文件必须是Unicode.
我现在生成的文件如下所示:(在UTF8中,非英文文本混合在一起并且有很多行)
Header1,Header2,Header3
Value1,Value2,"Value3 Line1
Value3 Line2"
Run Code Online (Sandbox Code Playgroud)
请注意,多行值用双引号括起来,其中包含正常的日常换行符.
根据我在网上发现的这应该有效,但它没有,至少没有赢得Excel 2007和UTF8文件,Excel将第3行视为第二行数据而不是第一行数据的第二行.
这必须在我客户的机器上运行,我无法控制他们的Excel版本,所以我需要一个适用于Excel 2000及更高版本的解决方案.
谢谢
编辑:我通过两个CSV选项"解决"了我的问题,一个用于Excel(Unicode,制表符分隔,字段中没有换行符),另一个用于世界其他地方(UTF8,标准CSV).
不是我想要的,但至少它是有效的(到目前为止)
我正在开发一项功能,将搜索结果导出到CSV文件,以便在Excel中打开.其中一个字段是一个自由文本字段,可能包含换行符,逗号,引号等.为了抵消这一点,我将字段用双引号(")包装.
但是,当我将数据导入Excel 2007时,设置适当的分隔符,并将文本限定符设置为双引号,换行符仍然在换行符处创建新记录,我希望在其中看到整个文本字段单细胞.
我也尝试用CR(\ r)替换CR/LF(\ r \n),再用LF(\n)替换,但没有运气.
有没有其他人遇到过这种行为,如果有,你是如何解决的?
TIA,
-J
编辑:
这是我用手写的复制问题的快速文件.
ID,名称,描述
"12345","史密斯,乔","嘿.
我的名字是乔."
当我将其导入Excel 2007时,我最终得到一个标题行和两个记录.请注意,"Smith,Joe"中的逗号正在正确处理.这只是造成问题的换行符.
我有一个纯文本文件,如下所示:
"some
text
containing
line
breaks"
Run Code Online (Sandbox Code Playgroud)
我正试图excel 2004 (Mac, v.11.5)正确地打开这个文件.我希望看到只有一个包含上述所有内容的单元格(A1)(没有引号)......
但唉,我无法实现,因为Excel似乎坚持使用CR作为行分隔符,即使我将文本限定符设置为双引号.我有点希望Excel能理解这些换行符是值的一部分 - 它们嵌入双引号中,这应该将它们限定为值的一部分.所以我的Excel工作表有5行,这不是我想要的.
我也试过这个Applescript无济于事:
tell application "Microsoft Excel"
activate
open text file filename ¬
"Users:maximiliantyrtania:Desktop:linebreaks" data type delimited ¬
text qualifier text qualifier double quote ¬
field info {{1, text format}} ¬
origin Macintosh with tab
end tell
Run Code Online (Sandbox Code Playgroud)
如果我可以告诉Excel使用除CR(或LF)以外的行分隔符,那么,我将是一个快乐的露营者,但excel似乎只允许更改字段分隔符,而不是行分隔符.
有什么指针吗?
谢谢,
Max Excel是开放的