我收到了将数据保存在CSV文件中并将其发送给客户的要求。 客户使用Excel和记事本来查看此文件。 数据看起来像:
975567EB,973456CE,971343C8
我的数据有一些数字以#34; E3"喜欢:
98765E3
因此在Excel中打开时,它将更改为:
9.8765E + 7
我编写了一个程序,通过添加=" 98765E3"将此格式更改为文本。在C#
中while(!sr.EndOfStream) {
var line = sr.ReadLine();
var values = line.Split(',');
values[0] = "=" + "\"" + values[0] + "\""; //Change number format to string
listA.Add(new string[] {values[0], values[1], values[2], values[3]});
}
但是对于使用记事本打开CSV文件的客户,它会显示如下:
=" 98765E3"
如何将数字保存为CSV文本,以便在Excel和记事本中打开,结果相同?非常感谢任何建议!
答案 0 :(得分:3)
不要拍摄信使。
您的问题不是您在C#中导出(创建......?)数据的方式。您可以在Excel中打开CSV文件。
Excel有许多用于导入文本文件的选项,允许使用 FieldInfo 参数,该参数为引入的每个字段(也称为列)指定TextFileColumnDataTypes property。
如果您选择从资源管理器文件夹窗口中双击CSV文件,那么您将不得不忍受Excel“最佳猜测”是每列的预期字段类型。它不会在导入过程中途停止询问您的意见。一些常见错误包括:
这是常见错误的简短列表。还有其他人。以下是一些常见的解决方案。
还有一些不太精确的解决方案仍然需要Excel的解释。
"
)来包装您想要解释为文本的值。后两种方法会在记事本中产生一些奇怪的值,但记事本不是Excel,不能在几秒钟内处理50万次计算和其他操作。如果你必须混搭这两个程序,那么会有一些妥协。
我的建议是在记事本中尽可能保留最佳值,并使用Excel中现有的工具和流程正确导入数据。