将Dictionary <string,string =“”>复制到Excel的剪贴板

时间:2015-07-08 08:33:44

标签: c# wpf excel clipboard

我正在尝试编写一个工具,它将比较两个字符串表并查找一个而不是另一个的值。我有应用程序,以便正确获取所有这些值,并将它们存储在Dictionary<string, string>中,并使用它在我的XAML中的GridView上显示它。

然后我发现你必须手动将复制代码添加到GridView中,所以我想我只需要一个按钮来复制字典的全部内容,但现在我遇到了一个问题,当我尝试复制时它进入excel它只产生一列值,我需要键为一列,值为另一列。

到目前为止,这是我的复制代码:

        if (ToTranslate.Count != 0)
        {
            var sb = new StringBuilder();
            foreach (var item in ToTranslate)
            {
                sb.Append(item.Key + ", ");
                sb.AppendLine(item.Value);
            }

            System.Windows.Clipboard.SetData(DataFormats.Text, sb.ToString());
        }

我已经尝试过很多其他的东西,例如item.string,它们把它们放在方括号中但仍然不起作用。我也试过修剪方括号但这仍然不起作用。

我原本以为它会把你的逗号作为分隔符,就像打开csv那样,但它没有。

我不知道这是否会有所帮助,但这是我的xaml

        <ListView ItemsSource="{Binding Results}">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Name" Width="100" DisplayMemberBinding="{Binding Key}" />
                    <GridViewColumn Header="Text" Width="Auto" DisplayMemberBinding="{Binding Value}" />                        
                </GridView>
            </ListView.View>
        </ListView>

1 个答案:

答案 0 :(得分:1)

Excel喜欢制表符作为分隔符。 要导入CSV,您需要Excel的导入辅助,只有在您打开包含CSV数据的文件时才会打开该内容。

使用制表符很有效。