更改 Clipobard.GetData() 的 csv 分隔符

Change csv delimiter for Clipobard.GetData()

我尝试根据此 post 通过将数据网格复制到剪贴板来将数据网格保存为 csv: Copy text from WPF DataGrid to Clipboard to Excel

导出有效,但列分隔符是 "," 但我使用带有 ";" 分隔符的德国区域设置.孔文字为一栏:(

我可以更改 DataFormats.CommaSeparatedValue 分隔符吗?

谢谢你,祝你有愉快的一天

克里斯

不确定是否可以更改分隔符。如果找不到方法,您可以随时这样做:

string result1 = ((string)Clipboard.GetData(DataFormats.CommaSeparatedValue)).Replace(";",",");

据我所知,你无法更改它。

我同意有人在 your link 中已经说过的话 - 您不应该将 csv 数据保存到 xls 文件中。当您使用 excel 打开 .csv 文件时,它会在导入前询问您要使用的分隔符。

如果您想在保存前更改分隔符,请查看 this post。 请务必查看该答案中的 link - 您需要使用 Microsoft.VisualBasic.FileIO 命名空间。

但是,如果您仍然决定另存为 .xls,请小心 - 您可能会将分隔符更改为“;”在保存之前,但是 excel 期望使用 ',' 作为分隔符的人会遇到与您现在相同的问题。

我通过保存 DataTable 而不是 DataGrid 解决了问题。下面 link 中的 DataTableExtensions class 工作得很好。

c# datatable to csv

谢谢