我有一个包含大量数据的纯文本文件。数据由分号和换行符分隔,用于开始以下数据的新行。以下是示例:
“user_id”;“device_id”;“timestamp”;“driving”;“id”;“onfootoptional”;“running”;“servertimestamp”;“stationary”;“tiltingoptional”;“unknown”;“walking”
2089;2145;"2016-01-28 14:31:27";28;"b28aa64d-7fe0-49e7-8a1b-b8d37c95a851";1;0;"2016-01-28 15:11:41";18;0;50;1
我尝试使用常规方法进行转换,但转换失败。转换后我发现的问题是输出结果中有些是中文字母,而文本仅包含英文字母和数字以及一些特殊字符。此外,转换并不像文本文件那样进行,例如当出现换行符时,它应该从新行开始。
我真正想要将文本文件转换为 Excel 表的方法是:
转换包含“的每个部分有或无“ 随后是 “;“放入一个单元格中。
在“ ”字段中,如果它是字符串,则需要将其转换为字符串;如果它仅包含整数,则需要将其转换为整数。但是,如果字符串和整数混合存在,则需要将其转换为字符串。此外,如果整数包含任何类型的特殊字符,如“ . ”、“ ”、“ ”、“ - ”或“ : ”,则需要将其转换为整数加特殊字符。
- 当文本行以新队,那么在 Excel 表上,转换将从换行符开始。
答案1
我认为,内置函数(这是一般方法?)的 Libreoffice 应该能够做到这一点?
如果没有 - 尝试csv2odf。这是一个非常方便的工具,尤其是对于许多文件进行转换。它应该能满足您的需求。
我不确定您提到的格式。试试 csv2odf。如果它没有达到您想要的效果,请尝试指定 csv2odf 的作用 -
您想要的
- 您不想要的
最好有适当的例子。
希望这有帮助,祝你好运!
答案2
我将您的示例复制并粘贴到名为“test.csv”的文件中,然后双击它。使用默认设置,它在 Calc 中打开得很好。
尝试使用文本编辑器将文件缩减到几百行,然后打开它。如果成功,那么应该可以找出问题的原因。
该文件可能存在换行符问题。请尝试按如下方式修复:https://unix.stackexchange.com/questions/32954/use-sed-to-fix-broken-newlines
还检查编码:https://stackoverflow.com/questions/805418/how-to-find-encoding-of-a-file-in-unix-via-scripts
如果“海量数据”超过 100 万行,请参见https://ask.libreoffice.org/en/question/8631/upper-limit-to-number-of-rows-in-calc/。
答案3
问题解决了。转换在我的笔记本上无法正常工作,但在别人的 Ubuntu 14.04 上却可以正常工作。他在转换过程中基本上没有更改任何设置。他只是单击了下一步,最后单击了确定。
感谢您的回复。