禁止Excel在打开.csv文件时自动格式化列

时间:2017-11-08 08:52:38

标签: c# excel csv stringbuilder streamwriter

我将一些数据导出到.csv文件。

.csv文件:

Hotel Name;Street;Postal Code;City;Latitude;Longitude
Hotel X;Street 1;00000;City X;15.000000;15.000000

但是如果我在Excel中打开它,Excel会自动格式化纬度和经度,因此它不能用于复制和放大。糊。

enter image description here

忽略邮政编码中的0,我必须摆脱纬度和经度上的1 . 000

如何阻止Excel执行此操作?

应该在.csv文件中完成,而不是在Excel中完成。

出口代码:

foreach(...)
{
    StringBuilder_Export.Append(DataRow_Temp[i] + ";");
}

StreamWriter StreamWriter_Export = new StreamWriter(
    SaveFileDialog_Geo_Export.FileName, 
    true, 
    Encoding.Default
); 

StreamWriter_Export.WriteLine(StringBuilder_Export.ToString());

编辑:我主要搜索我的纬度和经度问题的解决方案。

3 个答案:

答案 0 :(得分:1)

可能是Stop Excel from automatically converting certain text values to dates的副本,但是如果要在打开时生成一个看起来完全符合要求的Excel文件,请不要使用csv。 Excel将始终通过查看第一行(15个我想?)行来尝试猜测csv列的数据类型。

我使用EPPlus从我的应用程序生成xlsx文件,但是你可以使用很多库

答案 1 :(得分:1)

将其扩展名更改为txt并使用文本导入向导。然后用它告诉excel应该如何处理列(文本,货币,日期等)。打开.txt文件时,文本导入向导将自动启动

答案 2 :(得分:0)

将文件另存为 .csv 时,请确保该文件为 UTF-8 格式

然后打开excel,浏览选择你想要的文件,它会自动运行提示器。

utf-8 和 excel 以外的任何其他格式都将尝试自动转换。