【发布时间】:2017-11-03 08:59:59
【问题描述】:
我的文件格式为 Unix (LF) with UTF-8-BOM。它在每一列上都有引号:
现在我想删除最后一列。如果我使用 excel 将文件保存为 .csv,则它在 Windows (CR LF) in ANSI 中格式化。它丢失了引号:
我编写了一个简短的 C# 代码来使用 StreamReader/StreamWriter 手动删除最后一列,但输出也采用 Windows (CR LF) UTF-8 格式。奇怪的是它还失去了一些线条..
string newFilename = tboxFile.Text.Split(new string[] { ".csv" }, StringSplitOptions.None)[0] + "_replaced123.csv";
StreamReader streamReader = new StreamReader(tboxFile.Text);
StreamWriter streamWriter = new StreamWriter(newFilename);
string line = streamReader.ReadLine();
streamWriter.WriteLine(line.Split(new string[] { ";\"@timestamp\"" }, StringSplitOptions.None)[0]);
while ((line = streamReader.ReadLine()) != null)
streamWriter.WriteLine(line.Split(new string[] { ";\"2017-11-" }, StringSplitOptions.None)[0]);
所以.. 是否有一个特殊的 excel 技巧可以以相同的格式(Unix LF UTF-8-BOM)保存输出,或者我该如何帮助我?
【问题讨论】:
-
你可以试试 LibreOffice 的电子表格工具。如果您将其另存为 csv,则有一个复选框“编辑过滤器设置”(或具有该含义的内容)。启用此功能后,按保存后将显示“Textexport”对话框(您可以在其中选择文本编解码器)。
-
请把它写成答案,markus。所以我可以接受它作为解决方案。