lan*_*ng2 6 csv openoffice-calc
我正在尝试使用 OpenOffice Calc 编辑带有TAB分隔符的CSV 文件。无论我做什么,Calc 都坚持在字符串中添加引号 (")。如果单元格内容只有数字,那也没关系。
有没有办法不让 Calc 这样做?我的意思是,TAB 对任何解析器都足够了,对吧?
\n\n我的意思是,TAB 对于任何解析器来说都足够了,对吧?
\n
不,从技术上来说并不是这样!正如我在关于Excel 的 CSV 格式的回答中提到的,CSV 文件的通用格式和 MIME 类型(RFC 4180) 指定:
\n\n\n\xe2\x80\xa6 每个字段可能会也可能不会用双引号括起来(但是\n某些程序,例如 Microsoft Excel,根本不使用双引号\n)。如果字段没有用双引号括起来,则\n双引号可能不会出现在字段内。
\n
到目前为止,一切都很好。Calc 显然选择始终将其括在双引号中。
\n\n\n包含换行符 (CRLF)、双引号和逗号的字段应括在双引号中
\n
\xe2\x80\xa6 所以这里必须使用双引号才能再次正确解析 CSV。
\nCalc 可能这样做是作为所有文本字段的安全措施。相反,Excel 所做的事情有些模糊。
\n我发现一个论坛帖子建议使用宏来禁用文本分隔符:
\nDim oDocCsv As Object \nDim CsvProperties(2) As New com.sun.star.beans.PropertyValue \n\n.... \n\nCsvProperties(0).Name = "FilterName" \nCsvProperties(0).Value = "Text - txt - csv (StarCalc)" \nCsvProperties(1).Name = "FilterOptions" \nCsvProperties(1).Value = "124,0,ANSI,2" \n\n.... \n\noDocCsv.storeAsURL("test.csv", CsvProperties()) \nRun Code Online (Sandbox Code Playgroud)\n这里重要的选项是与 的行124,0,ANSI,2。根据过滤器选项参考,第二部分(即0)在导出时禁用文本分隔符。
| 归档时间: |
|
| 查看次数: |
5297 次 |
| 最近记录: |