2
我有一個程序,顯示System.Windows.Forms.DataGridView
中的數字。我將根據用戶的區域設置格式化這些數字,這會在嘗試將所述數字複製並粘貼到Excel中時導致問題。例如,123 456 789,00是芬蘭語中適當的本地化格式,但Excel將其解釋爲字符串,而不是數字。有沒有辦法讓Excel瞭解數字中的千位分隔符或爲剪貼板使用不同的數字格式?剪貼板的不同數字格式?
我有一個程序,顯示System.Windows.Forms.DataGridView
中的數字。我將根據用戶的區域設置格式化這些數字,這會在嘗試將所述數字複製並粘貼到Excel中時導致問題。例如,123 456 789,00是芬蘭語中適當的本地化格式,但Excel將其解釋爲字符串,而不是數字。有沒有辦法讓Excel瞭解數字中的千位分隔符或爲剪貼板使用不同的數字格式?剪貼板的不同數字格式?
您可以創建自己的DGV派生類並重寫GetClipboardContent()方法。它允許您以與Excel兼容的方式格式化字符串。類似這樣的:
using System;
using System.Windows.Forms;
class MyDGV : DataGridView {
public override DataObject GetClipboardContent() {
if (this.SelectedCells.Count == 1 && this.SelectedCells[0].ColumnIndex == 1) {
string value = string.Format("{0:N2}", this.SelectedCells[0].Value);
return new DataObject(DataFormats.Text, value);
}
return base.GetClipboardContent();
}
}
未經測試。