>  기사  >  웹 프론트엔드  >  JS는 교묘하게 클립보드 데이터를 가져와서 Excel data_javascript 기술을 붙여넣습니다.

JS는 교묘하게 클립보드 데이터를 가져와서 Excel data_javascript 기술을 붙여넣습니다.

WBOY
WBOY원래의
2016-05-16 18:50:331119검색

또 다른 방법으로는 flash를 사용하는 방법이 있는데, 이는 브라우저의 보안 제한을 피할 수 있는데 시스템 클래스에는 set 메소드만 있고, 다른 클립보드 클래스에서도 접근이 가능하지만 flash10 버전의 지원이 필요한 것 같습니다.

온라인으로 검색했는데 아무것도 나오지 않았습니다. 마침내 Google Sheets가 어떻게 작동하는지 확인해 볼까 생각했습니다.
Google 시트는 보안 제한이나 플래시를 사용하지 않고 Excel의 일반 텍스트 다중 데이터 그리드 붙여넣기를 구현하는 것을 발견했습니다. 아마 많은 분들이 이 방법을 알고 계시겠지만, 처음에는 놀랐지만, 구글의 js 파일이 처리되어 있어서 너무 피곤해 보입니다. 그런 다음 ZOHO 시트를 찾으러 갔는데, 그 js 파일이 간단하게 처리되었고, 디버깅하고 읽을 수 있었습니다.
onkeydown 이벤트가 본문에 등록된 것으로 나타났습니다. 사용자가 ctrl v 키를 누르면 js는 포커스를 텍스트 영역 레이블로 이동하므로 다음 keyPress 및 keyUp 이벤트가 자연스럽게 텍스트 영역에서 발생합니다. 이는 사용자가 텍스트 영역에 복사하는 것과 동일하며 js는 포커스를 이동하고 텍스트 영역에서 값을 가져옵니다. 이러한 방식으로 클립보드의 텍스트 데이터를 얻습니다.
다음은 ZOHO 시트 구현을 모방한 작은 예입니다.

코드 복사 코드는 다음과 같습니다.

head>

제목 없는 문서<br>< ; script type="text/javascript"><!-- <BR> function cellkeydown(event) { <BR> if (event.ctrlKey && event.keyCode == 86) { <BR> var ss = document. getElementById ("Textarea"); <BR> ss.focus (); <BR> ss.select () <BR> // 50밀리초 동안 기다리면 데이터를 처리하기 전에 키 누르기 이벤트가 발생합니다. <BR> Settimeout ("DEALWITHDATA ( ) ",50); <BR>        }                                                          🎜> ss.blur(); <BR> } --></script> <br></head><br>
그런 다음 그리드와 행 정보를 분리할 수 있습니다. 그러나 이는 간단한 일반 텍스트 Excel 값만 얻을 수 있으며 그리드 스타일은 얻을 수 없습니다. 하지만 방법을 찾았습니다.(온라인 편집기에서 구현하는 방식) iframe의 문서에 복사하면 일부 스타일 정보가 IE에서 특히 포괄적으로 표시됩니다. 이는 아마도 내 제품이 자체적으로 구문 분석할 수 있기 때문일 것입니다. FF 및 Chrome은 줄 번호 및 열 너비와 같은 몇 가지 간단한 속성만 가져올 수 있습니다. 더 완전한 정보를 얻을 수 있는 방법이 있는 사람이 있는지 모르겠습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.