在C#vsto Excel中粘贴特殊功能

San*_*ile 4 c# excel vsto copy-paste visual-studio-2008

我正在使用C#vsto Excel应用程序.

每当用户从另一个Excel工作表中粘贴excel模板中的内容时,它还会将单元格格式与单元格数据一起粘贴到Excel模板中.我想避免这种情况.所以我用谷歌搜索,我遇到了特殊的术语粘贴.

Paste special将仅粘贴内容,不会改变当前工作表的格式.

我想在我的vsto应用程序中引入粘贴特殊选项.

我这里有代码,

   Application.OnKey("^v", "PasteSpecV");
Run Code Online (Sandbox Code Playgroud)

但它没有用......任何人都可以帮我这个吗?

Tus*_*iya 6

  1. http://globalmousekeyhook.codeplex.com/下载dll
  2. 添加参考MouseKeyboardActivityMonitor.dll

        private KeyboardHookListener k_keyListener;
    
        private void ThisWorkbook_Startup(object sender, System.EventArgs e)
        {
            k_keyListener = new KeyboardHookListener(new AppHooker());
            k_keyListener.Enabled = true;
            k_keyListener.KeyDown += new KeyEventHandler(k_keyListener_KeyDown);
        }
    
        void k_keyListener_KeyDown(object sender, KeyEventArgs e)
        {
            if (Control.ModifierKeys == Keys.Control)
                if (e.KeyCode == Keys.V)
                {
                    Worksheet actSht = ActiveSheet as Worksheet;
                    Range rng = actSht.Application.Selection as Range;
                    if (MessageBox.Show("You are about to paste values only. Do you want to continue?", "Paste Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        rng.PasteSpecial(XlPasteType.xlPasteValues, XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
                    }
                    e.Handled = true;
                }
        }
    
    Run Code Online (Sandbox Code Playgroud)