2009-08-10 4 views
3

테이블을 채울 수있는 붙여 넣기 버튼이있는 웹 앱을 만들었습니다. 데이터는 원래 Excel 스프레드 시트에서 복사되어 내 양식에 붙여 넣어집니다.데이터를 잘라내는 클립 보드에 Excel 복사

문제점은 기본 값이 아닌 표시된 데이터 만 보는 것입니다. 예를 들어 셀의 값이 12.223이고 셀의 형식이 12.2 만 표시하면 12.2는 클립 보드로 이동합니다.

여기에 트릭이 누락 되었습니까? 누구든지 클립 보드에서 전체 데이터를 가져 오는 방법을 알고 있습니까?

편집 : Excel에서 클립 보드에 25 개의 다른 형식을 사용할 수 있습니다. 여기에는 필요한 실제 정보가 들어있는 것처럼 보이는 "XML 스프레드 시트"가 있습니다. 그러나 브라우저에서는 텍스트 버전 만 사용할 수 있습니다. ActiveX 컨트롤 또는이 데이터를 가져 오는 데 사용할 수있는 비슷한 ActiveX 컨트롤이 있습니까?

+0

코드 접근 방식을 알려주는 코드를 게시 할 수 있습니까? – JFV

+0

CSV로 내보낼 때도 Excel에서 동일한 작업을 수행합니다. 그것은 표시되지 않는 것들을 쓰레기 것입니다. 나는 당신이 Excel 문서를 말 문서로 복사하고 분수 자리를 얻고 싶지 않다고 생각합니다. – pjp

+1

@FJV : 아마도 Ctrl + A, Ctrl + C, Alt-Tab, Ctrl + V : – pjp

답변

5

내가 할 수있는 유일한 방법은 Windows Forms Object Library를 사용하는 일부 VBA 코드를 노크하는 것입니다.

나는 이것이 바로 셀의 눈에 보이는 텍스트를 복사합니다 기본적으로 클립 보드

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

을 사용합니다 코드 예제를 발견했다. 당신이 필요합니다 실제 값이 어떤 날짜 당신이 그 (것)이있는 경우 것이다 아마 엉망이지만

cell.Text 

cell.Value 

을 변경 출력을 얻을 수 있습니다.

편집 :

실제로 날짜는 셀을 복사 한 후

+0

감사합니다. VBA 스크립트가 Ctrl-C에 걸리거나 마우스 오른쪽 버튼으로 클릭하여 복사 할 수있는 방법을 알고 있습니까? 스프레드 시트의 사용자는 다양한 회사에서 근무하며 현재 솔루션은 매우 간단합니다. 그들에게 새로운 사본 아이콘을주는 것은 너무 잘 풀리지 않을 것입니다! –

+0

도구, 매크로, 매크로를 클릭하면 매크로가 강조 표시되고 옵션을 누르면 Ctrl + c 조합에 할당 할 수 있습니다. – pjp

0

확인을 복사하는 것, 다음 붙여 넣기 아래에서 값 옵션을 선택하고 마우스 오른쪽 버튼을 클릭하고 붙여 넣기 - 특수 선택합니다. 그러면 전체 값이 붙여 넣어집니다.

+2

문제는 붙여 넣기가 다른 응용 프로그램에서 사용 가능하지 않은 것입니다. – pjp

+0

다음과 같이 할 수 있습니다. Excel 데이터를 복사하고 특수 시트를 새 시트에 붙여 넣은 다음 클립 보드에 복사합니다. – pjp

+0

맞습니다. Excel로만 제한됩니다. –

0

내가 붙여 넣기 XML 값만에 대한 옵션을 볼 수 있지만

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 

다음 당신은 또한 할 수있는 복사 포맷 된 데이터를 포함하는 별도의 시트를 사용하여 당신이 행복이 제공.

다시이 매크로는 Ctrl + C 키 조합에 첨부 할 수 있습니다.

+0

Excel 쪽에서는 아무 것도 할 수 없습니다. 브라우저 솔루션이어야합니다. –

+0

Excel/VBA를 변경할 수없는 경우 유일한 옵션은 사용자가 시트를 업로드하고 응용 프로그램에서 직접 처리하도록 허용하는 것입니다. Apache POI를 사용하여 Excel 시트를 구문 분석 할 수 있습니다. – pjp

0

엑셀 스프레드 시트를 수정할 수 없다는 점을 감안할 때 귀하는 고생 한 것처럼 보입니다. 문제는 Windows 클립 보드가 브라우저에서 붙여 넣기의 일반 텍스트 외에는 아무 것도 받아 들일 수 없다는 것을 인식한다는 것입니다. 이 때문에 일반 텍스트 테이블로 붙여 넣습니다. 기본적으로 이는 탁월한 데이터를 시각적으로 표현한 것입니다.

스프레드 시트 데이터를 제외한 페이지의 ActiveX 구성 요소를 만든 경우 엑셀 붙여 넣기를해야한다고 생각합니다. 순수한 브라우저 자바 스크립트 구현은 당신이 필요로하는 것을하지 않을 것이다.

관련 문제