不允许 Excel 在打开 .csv 文件时自动格式化列

Disallow Excel to auto format columns while opening a .csv file

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

.csv 文件:

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

但是如果我在Excel中打开它,Excel会自动格式化纬度和经度,所以它不能用于复制和粘贴。

忽略邮政编码的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());

编辑: 我主要在寻找我的经纬度问题的解决方案。

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

我使用 EPPlus 从我的应用程序生成 xlsx 文件,但有许多库可供您使用

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

当您将文件保存为 .csv 时,确保文件为 UTF-8 格式

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

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