【问题标题】:Excel copy to clipboard truncating dataExcel复制到剪贴板截断数据
【发布时间】:2009-08-10 12:07:51
【问题描述】:

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

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

我在这里错过了一个技巧吗?有谁知道如何从剪贴板中提取全部数据?

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

【问题讨论】:

  • 你能发布一些代码来看看你是如何处理这个问题的吗?
  • Excel 在导出为 CSV 时做同样的事情。它会丢弃任何未显示的内容。我想您不想将 Excel 复制到一个 word 文档中并获得大量小数。
  • @FJV:可能是 Ctrl+A、Ctrl+C、Alt-Tab、Ctrl+V :)

标签: excel clipboard


【解决方案1】:

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

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

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

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

cell.Text

cell.Value

虽然如果你有日期,这可能会弄乱任何日期。

编辑:

实际上日期似乎可以复制

【讨论】:

  • 谢谢。您知道 VBA 脚本可以挂接到 Ctrl-C 或右键单击并复制的方法吗?电子表格的用户为各种不同的公司工作,他们当前的解决方案非常简单。给他们一个新的副本图标不会太好!
  • 如果您单击工具、宏、宏,突出显示宏并按选项,然后您可以将其分配给 Ctrl+c 组合。
【解决方案2】:

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

【讨论】:

  • 问题是选择性粘贴似乎在其他应用程序中不可用。
  • 我想您可以执行以下操作:复制 Excel 数据,将特殊粘贴到新工作表中,然后将其复制到剪贴板。
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

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

    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 组合键。

    【讨论】:

    • 我无法在 Excel 方面做任何事情。它必须是浏览器解决方案。
    • 如果您无法对 Excel/VBA 进行任何更改,那么您唯一的选择是允许用户上传工作表并在您的应用程序中自行处理。您可以使用 Apache POI 解析 Excel 工作表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-03
    • 2015-08-27
    • 2015-08-31
    相关资源
    最近更新 更多