剪贴板的数字格式不同?

时间:2010-06-19 09:55:56

标签: c# excel excel-2007

我有一个程序显示System.Windows.Forms.DataGridView中的数字。我根据用户的区域设置格式化这些数字,这会在我尝试将所述数字复制并粘贴到Excel时导致问题。例如,123 456 789,00是芬兰语中正确的本地化格式,但Excel将其解释为字符串,而不是数字。有没有办法让Excel能够理解数字中的千位分隔符,或者为剪贴板使用不同的数字格式?

1 个答案:

答案 0 :(得分:1)

您可以创建自己的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();
    }
}

未测试。