我已经构建了一个Web应用程序,其中包含用于填充表格的粘贴按钮。数据最初是从Excel电子表格中复制并粘贴到我的表单上。
问题是我只看到显示的数据,而不是基础值。例如,如果单元格的值为12.223且单元格的格式仅显示为12.2,则12.2会转到剪贴板。
我在这里错过了一招吗?有谁知道如何从剪贴板中提取完整数据?
编辑:Excel似乎在剪贴板上提供了25种不同的格式,包括“XML Spreadsheet”,它看起来像是包含我需要的实际信息。但是,似乎浏览器中只有Text版本可用。是否有一个ActiveX控件或类似的东西,我可以用它来获取这些数据?
答案 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实现将无法满足您的需求。