Excel에 붙여넣기 위해 Windows 클립보드 복사 버퍼에 서식 정보 포함
내 애플리케이션은 사용자가 엑셀에 붙여넣을 수 있도록 윈도우 복사 버퍼에 표 형식의 데이터를 씁니다.탭 중지 및 셀 및 행 딜리미터의 새 줄을 포함한 비정형 표 데이터에 적합합니다.
복사 버퍼에 그리드 선, 배경색 등의 형식 지정 데이터를 포함하고 싶습니다.이 작업을 수행할 수 있으며, 그렇다면 포맷 데이터를 인코딩하기 위한 사양은 어디에서 찾을 수 있습니까?
예, 가능합니다. (분명히 클립보드를 통해 Excel의 실행 중인 인스턴스에서 다른 인스턴스로 포맷된 Excel 데이터를 복사할 수 있으므로 가능해야 합니다!)
Windows 클립보드는 동시에 둘 이상의 형식으로 저장할 수 있습니다.Excel 형식의 그리드 항목에 사용할 형식을 BIFF, 즉 이진 교환 파일 형식이라고 합니다.Excel이 실제로 파일을 저장하는 형식과 동일합니다.BIFF 문서의 합리적인 출처는 Open Office에서 확인할 수 있습니다.
BIFF의 기본 사항을 파악하고 나면 원하는 BIFF를 생성하는 가장 쉬운 방법은 Excel 스프레드시트에서 원하는 셀 모델을 복사하여 클립보드에 있는 내용을 검토하는 것입니다.
해결책은 클립보드의 내용을 덤프하는 작은 프로그램을 작성하는 것입니다. 여기에는 모든 다른 형식이 포함됩니다.그런 다음 일부 Excel을 클립보드에 복사하고 클립보드를 덤프하면 데이터 포맷 방법이 표시됩니다.
다음은 내가 작성한 앱의 출력이므로 리치 텍스트 앱에 테이블을 붙여넣을 수 있습니다.
xC0FC:
Version:0.9
StartHTML:00000120
EndHTML:00000686
StartFragment:00000154
EndFragment:00000650
SourceURL:about:blank
<html><body>
<!--StartFragment--><table style="max-width: 50%; background: rgb(255, 255, 255);">
<tbody>
<tr>
<td valign="center" style="background-color: #cccccc;" width="180"><b><font size="-1">Enter in "Name"<br>
</font></b></td>
<td valign="center">XXX YYY</td>
</tr>
<tr>
<td valign="center" bgcolor="#cccccc" width="300"><b><font size="-1">Enter in "Registration Key"<br>
</font></b></td>
<td valign="center">123456</td>
</tr>
</tbody>
</table>
<!--EndFragment-->
</body>
</html>
시작/종료는 바이트 오프셋입니다."C0FC" 텍스트 유형 코드는 제가 파악하지 못한 패턴에 따라 매일 달라지는 것 같습니다.당신은 실험을 하고 시행착오를 사용해야 할 것입니다.
솔루션 #1
Python을 사용하여 HTML 코드를 클립보드에 복사하는 방법은 무엇입니까?
Excel을 사용하여 내 표의 예제를 만듭니다.테이블을 선택한 경우:
- 로 저장
- 유형으로 저장:선택사항이 있는 웹 페이지
- 게시
그런 다음 텍스트 편집기로 이것을 열면 html을 보거나 수정하거나 코드로 다른 값으로 생성하여 사용할 수 있습니다.PutHtml(html_table_str)
클립보드 안에 넣거나 다른 언어로 코드를 만들 수 있도록 _RR 55698762에서 제공합니다.
그런 다음 Excel에 붙여넣으면 완벽하게 작동합니다.
샘플 코드:
html_table_str = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\r\n<HTML>\r\n<HEAD></HEAD>\r\n<body>\r\n<table>\r\n<tr>\r\n<td style='border:.5pt solid black;color:white;font-weight:700;background:#3A3838'>x</td>\r\n<td style='border:.5pt solid black;color:white;font-weight:700;background:#3A3838'>y</td>\r\n</tr>\r\n<tr>\r\n<td style='border:.5pt solid black;'>5</td>\r\n<td style='border:.5pt solid black;color:red'>6</td>\r\n</tr>\r\n</table>\r\n</body>\r\n</html>"
PutHtml(html_table_str)
솔루션 #2
당신은 단순히 html 문서 텍스트를 엑셀에 직접 붙여넣을 수도 있지만, 이전 엑셀 버전에서 작동하는지 확신할 수 없고 솔루션 #1과 달리 msword나 아웃룩에서 작동하지 않습니다.
샘플 html :
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<HTML>
<HEAD></HEAD>
<body>
<table>
<tr>
<td style='border:.5pt solid black;color:white;font-weight:700;background:#3A3838'>x</td>
<td style='border:.5pt solid black;color:white;font-weight:700;background:#3A3838'>y</td>
</tr>
<tr>
<td style='border:.5pt solid black;'>5</td>
<td style='border:.5pt solid black;color:red'>6</td>
</tr>
</table>
</body>
</html>
언급URL : https://stackoverflow.com/questions/6299824/include-formatting-information-in-windows-clipboard-copy-buffer-for-pasting-into
'programing' 카테고리의 다른 글
jQuery ajax 호출 반복 (0) | 2023.08.29 |
---|---|
PowerShell cmdlet의 소스 코드를 볼 수 있습니까? (0) | 2023.08.29 |
이미지를 회전하고 저장하는 방법 (0) | 2023.08.29 |
Spring MVC: 인덱스 페이지의 기본 컨트롤러를 만드는 방법은 무엇입니까? (0) | 2023.08.29 |
El Capitan 업그레이드: 라이브러리가 로드되지 않음: /usr/local/lib/libmysqlclient.18.dylib (0) | 2023.08.29 |