Excel复制到剪贴板截断数据

时间:2009-08-10 12:07:51

标签: excel clipboard

我已经构建了一个Web应用程序,其中包含用于填充表格的粘贴按钮。数据最初是从Excel电子表格中复制并粘贴到我的表单上。

问题是我只看到显示的数据,而不是基础值。例如,如果单元格的值为12.223且单元格的格式仅显示为12.2,则12.2会转到剪贴板。

我在这里错过了一招吗?有谁知道如何从剪贴板中提取完整数据?

编辑:Excel似乎在剪贴板上提供了25种不同的格式,包括“XML Spreadsheet”,它看起来像是包含我需要的实际信息。但是,似乎浏览器中只有Text版本可用。是否有一个ActiveX控件或类似的东西,我可以用它来获取这些数据?

4 个答案:

答案 0 :(得分:5)

我能看到的唯一方法是敲掉一些使用Windows窗体对象库的VBA代码。

我找到了一个使用剪贴板的代码示例

http://www.dailydoseofexcel.com/archives/2004/12/02/putting-text-into-the-windows-clipboard/

默认情况下,这只会复制单元格的可见文本。要让它输出您需要更改的实际值

cell.Text

cell.Value

如果你有这些日期,这可能会搞砸任何日期。

编辑:

实际上日期似乎复制好了

答案 1 :(得分:0)

复制单元格后,右键单击并选择“粘贴特殊”,然后选择“粘贴”下的“值”选项。这将粘贴完整的值。

答案 2 :(得分:0)

如果您乐意使用额外的工作表来包含格式化的数据以进行复制,您还可以执行以下操作

Sub CopyPasteSpecialCopy()

    'Clear out temp destination
    Sheets("CopyPasteSheet").Select
    Cells.Select
    Selection.ClearContents

    'Copy data
    Sheets("DataSheet").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy

    'Paste data
    Sheets("CopyPasteSheet").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Cells.Select
    Application.CutCopyMode = False

    'Put it onto the clipboard
    Selection.Copy

End Sub

虽然我看不到粘贴XML值的选项。

此宏可以附加到 Ctrl + C 组合键。

答案 3 :(得分:0)

鉴于您无法修改Excel电子表格,您似乎陷入困境。问题是Windows剪贴板无法识别浏览器能够接受除粘贴中的纯文本以外的任何内容。因此,它将其粘贴为纯文本表,它基本上只是excel为您呈现的数据的直观表示。

如果您为除电子表格数据之外的页面构建了ActiveX组件,那么我认为excel粘贴应该可行。纯粹的浏览器javascript实现将无法满足您的需求。

相关问题