从网页复制Excel格式化的数据到剪贴板

5
我想在我的页面上提供一个按钮,当用户点击它时,能够将(Excel格式的)数据复制到用户的剪贴板中,并且他们可以在Excel中粘贴,值用逗号分隔。这种操作可行吗?也许可以使用jQuery实现?我对面向对象编程有一定的理解和经验。
任何帮助都将不胜感激。

保存到剪贴板是必须的吗?一旦他们点击按钮,页面能否自动给他们提供下载Excel的选项?这个选项会更容易些。 - Ricky Gummadi
是的,那样会更容易,但不幸的是效果不会太好。我们发现技术人员经常复制和粘贴很多冗余数据,因此正在寻找方法来仅获取内容并输入它。数据必须严格格式化,只选择某些元素值。 - btaylor507
2个回答

3
似乎很难找到JS在不同浏览器下的简单解决方案(对于IE来说简单,但其他浏览器不是),因此您可以查看使用Javascript和Flash的良好解决方案ZerClipboard。 ZeroClipboard

感谢提供的信息,非常感激。这是一个本地网络应用程序,我们所有的用户都使用IE浏览器。我想到的是能够通过ID获取活动浏览器窗口数据,并将其复制到剪贴板中。我还在研究如何在Excel中使用VBA抓取活动窗口。如果有些混淆,请见谅。 - btaylor507
所以,也许你可以尝试使用 clipboardData.setData("Text", s); 这个函数来复制你的文本(首先检查一下 if(window.clipboardData && clipboardData.setData) 函数是否存在)。 - MatRt
我想这会让我入门。非常感谢!真的很重要。就像他们说的,我知道足够让自己陷入麻烦 :) - btaylor507

0
function ClipBoard()
{
var tab      = "    ";
var ticket   = $('#Userid').text();
var queue    = $('#queue').text();
var customer = $('#customer').text();
var res      = $('#res').text();

var str      = ticket+tab+queue+tab+customer+tab+res;

$('#holdtext').append(str);
Copied = holdtext.createTextRange();
Copied.execCommand("Copy");
}

使用 jQuery 并在每个变量之间插入制表符将为 Excel 格式化。但是这仅适用于 IE。

<TEXTAREA ID="holdtext" STYLE="display:none;"></TEXTAREA>
<span id="ticket">767-45</span><br />
<span id="queue">john_doe</span><br />
<span id="customer">Citibank</span><br />
<span id="res">jan_doe</span><br />
<BUTTON onClick="ClipBoard();">Copy to Clipboard</BUTTON> 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接