Tag: 剪贴板

Excel到剪贴板与macros小数点分隔符

我想复制excel文件的内容到剪贴板,使用相同的分隔符和格式,无论用户configuration。 这是我的macros: Private Sub CommandButton1_Click() 'save number separators Dim d, t, u d = Application.DecimalSeparator t = Application.ThousandsSeparator u = Application.UseSystemSeparators 'set number separators With Application .DecimalSeparator = "." .ThousandsSeparator = "," .UseSystemSeparators = True End With 'create temporary copy ActiveSheet.Copy 'set number format ActiveSheet.Range("H2:I150").NumberFormat = "0.0000000000" […] 'copy sheet to clipboard ActiveSheet.Range("A1:O150").Copy 'disable messages […]

以编程方式(C#)将Excel转换为图像

我想通过编程(c#)将Excel文件转换为图像(每种格式都可以)。 目前,我正在使用Microsoft Interop Libraries&Office 2007,但默认情况下不支持保存图像。 所以我目前的解决方法如下: 使用Microsoft Interop打开Excel文件; 找出最大范围(包含数据); 使用该范围的CopyPicture(),将复制数据到剪贴板。 现在棘手的部分(和我的问题): 问题1: 使用.NET剪贴板类,我不能从剪贴板中得到正确的复制数据:数据是相同的,但不知何故格式化是扭曲的(整个文件的字体似乎变得粗体和一点点当他们不是可读的时候); 如果我使用mspaint.exe从剪贴板粘贴,粘贴的图像是正确的(就像我想要的那样)。 我反汇编mspaint.exe,并发现它正在使用(OleGetClipboard)从剪贴板中获取数据的函数,但我似乎无法得到它在C#/ .NET中的工作。 我尝试的其他事情是剪贴板WINAPI(OpenClipboard,GetClipboardData,CF_ENHMETAFILE),但结果与使用.NET版本相同。 问题2: 使用范围和CopyPicture,如果Excel表格中有任何图像,这些图像不会与周围的数据一起复制到剪贴板。 一些源代码 Excel.Application app = new Excel.Application(); app.Visible = app.ScreenUpdating = app.DisplayAlerts = false; app.CopyObjectsWithCells = true; app.CutCopyMode = Excel.XlCutCopyMode.xlCopy; app.DisplayClipboardWindow = false; try { Excel.Workbooks workbooks = null; Excel.Workbook book = null; Excel.Sheets sheets = null; […]

Office 2013 Excel .PutInClipboard是不同的?

我已经使用了一个多年的例程来将一个纯文本string放入剪贴板,我可以将其粘贴到另一个程序中,例如: targetData.SetText "This is a plain text string" targetData.PutInClipboard 当我在Excel Office 2013中使用这个数据时,数据不在剪贴板中,因此我无法粘贴它。 这从来没有发生在以前的版本。 在仔细观察下,我发现这个string不是作为“系统string”,而是作为“文本”或“Unicode文本”进入剪贴板。 但是…大约10%的时间它的工作,因为它应该把string作为“文本”的剪贴板。 有任何想法吗??

从包含重音字符的剪贴板获取CSV数据(从Excel粘贴)

情景 我的用户将从Excel复制单元格(从而将其放入剪贴板) 而我的应用程序将从剪贴板中检索这些单元格 问题 我的代码从剪贴板中检索CSV格式 但是,如果原始的Excel内容包含ä(a与变音符号)等字符,则检索到的CSVstring不会具有正确的字符(ä最终会显示为“正方形”) 相比之下,如果我的代码从剪贴板检索Unicode文本格式,一切正常:ä保存在从剪贴板检索的string中 SOURCE CODE – ORIGINAL – 有问题 [STAThread] static void Main(string[] args) { var fmt_csv = System.Windows.Forms.DataFormats.CommaSeparatedValue; // read the CSV var dataobject = System.Windows.Forms.Clipboard.GetDataObject(); var stream = (System.IO.Stream)dataobject.GetData(fmt_csv); var enc = new System.Text.UTF8Encoding(); var reader = new System.IO.StreamReader(stream,enc); string data_csv = reader.ReadToEnd(); // read the unicode string string […]