JS巧妙获取剪贴板数据--Excel数据的粘贴
来源:互联网 发布:linux 输入中文 编辑:程序博客网 时间:2024/05/19 02:17
最近需要在浏览器端实现excel数据的粘贴,一开始去找获取剪贴板数据的方法。但是在浏览器端,JS去取是受安全限制的。另外的方法就是用flash了,它可以避开浏览器的安全限制,但是system类中只有set的方法,另外的clipboard类中倒是能访问到,但是似乎需要flash10的版本支持。
网上找了一圈,没啥发现。终于想到去看看google sheet是怎么干的。
发现google sheet实现了excel的纯文本的多数据格粘贴,没有安全限制的需要,没有使用flash。可能很多人都知道这种方法了,反正我一开始很惊讶的,但是无奈,google的js文件是处理过的,看起来太累了。然后又去找ZOHO sheet,它的js文件只简单处理了一下,能debug,能看。
原来,其在body上注册了onkeydown事件,当用户按下ctrl+v键的时候,js将焦点转移到一个textarea标签上,这样,接下来的keyPress和keyUp事件就发生在textarea上了,自然而然的就相当于用户在textarea中复制了一下,然后,js再将焦点转移,从textarea中将值取到。这样就取到了剪贴板内文本数据了。
下面是一个模仿ZOHO sheet实现的小例子。
获得的Excel的文本数据,按照/t,/n就可以分割得到格子和行信息了。但这样只能得到简单的纯文本的excel值,格子的样式都弄不到。但我发现一个方法,当向iframe的document中复制的时候(就是在线编辑器的实现方式),这样能出现一些样式信息,IE中特别全,估计是因为自己家的产品自己能解析的缘故,FF和Chrome就只能得到行号列宽等一些简单的属性。不知道谁有方法能得到比较全的信息。
- JS巧妙获取剪贴板数据--Excel数据的粘贴
- unity 读取PC剪贴板(粘贴板)的数据缓存
- js 文本框监听粘贴事件,获取粘贴板上的图片数据
- 获取和设置剪贴板的数据
- 复制文本框的数据到剪贴板JS
- symbian CClipboard的使用(拷贝数据到剪贴板及从剪贴板获取数据)
- c#发送数据到剪贴板及从剪贴板获取数据
- VB.NET中调用系统的剪贴板完成数据的复制和粘贴
- Android系统剪贴板(ClipboardManager)的使用: 通过代码复制和粘贴数据
- 在浏览器中粘贴时替换剪贴板数据
- 在浏览器中粘贴时替换剪贴板数据
- JS获取剪贴板的内容
- Extjs中EditorGridPanel粘贴Excel复制的数据
- 获取EXCEL里面的数据
- 在Excel与Flex之间粘贴数据
- 把excel中的数据粘贴到oracle
- JS 局部数据的获取
- JS获取剪贴板内容的代码
- 30年间的十二次暴富机会,都没赶上呀
- Oracle数据字典表查询
- STUN检测NAT类型原理
- 关于Lucene SandBox包的下载问题
- qmake手册(初级部分)
- JS巧妙获取剪贴板数据--Excel数据的粘贴
- Java中页面跳转小知识
- 手机问题询问 MT6227 电话薄导入
- c# 读取文本中的一行用逗号连接数据,并对其进行排序
- 谁可以解决这个问题 谁就是JAVA 强人!!
- C# listview 读取指定行数据
- c/c++支持可变参数的函数
- 查看Oracle数据库中表空间信息的命令方法
- javascript事件大全4