웹 페이지에서 표를 Excel로 내보내려면 어떻게 해야 하나요? 내보내기에 모든 서식과 색상이 포함되기를 원합니다.
이 표에서, 먼 거리를 단숨에 깨끗한 쉽게 익스포트를 Excel 로 는 Jquery 데이터 테이블 표 도구를 플러그인에는. 신규인지, 필터, 주문, 페이지, 데이터의 격자선 수 있는 몇 가지 추가 및 부트해 코드 행 및 2 개의 작은 파일을 포함, Excel, PDF, CSV 로 익스포크 확보하십시오 클리보드로 및 프린터로.
이는 모든 코드 that& # 39 의 필요합니다.
$(document).ready( function () {
$('#example').dataTable( {
"sDom": 'T<"clear">lfrtip',
"oTableTools": {
"sSwfPath": "/swf/copy_cvs_xls_pdf.swf"
}
} );
} );
그래서, 빠른 배치, 안돼, 안돼, 대부분의 매우 쉽게 이해할 수 있도록 필요한 모든 브라우저 한계에는 서버측 언어. # 39 의 it& 윈-윈 (win-win). 유일하게 않니다 한계가 있지만 아직 대한 엄격한 형식을 열.
만약 포맷 및 색계열 절대값일 계약 위반 있지만브라우저에 방법을 찾을 수 있는 유일한 100% # 39, ve 금지커서 I& 서버측 코드에서 엑셀 파일을 처리하는 데 이벤트수정적절한 :에서 사용할 수 있습니다. 나의 선택은 페페스켈 It 솔루션, ve 처리할 수 있는 유일한 데몬입니다 I& # 39 지금까지 발견된 모든 브라우저 최신 버전의 경우 수출에 적극 서식을 Excel 에서 give it 단지 HTML. 하지만 전혀 그렇지 않습니다; s # 39 절 구체화합니다 it& 것만큼 쉽게 첫 번째 솔루션, 역시 다소 리소스에는 hog. 그러나 측면 또한 직접 출력할 수 있는 플러스 PDF 로 잘 알려져 있다. 그리고 나면, 그냥 작동됨 이해했소 구성되었음 때마다.
오래 전이든가 사실을 알게 될 것 "이라며" 만약 우리가 함께 보내 테이블이 있는 HTML 파일을 엽니다열기 Excel 엑셀 컨텐트입니다 유형:. 문서 고려해보십시오 그들위에:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Java Friends</title>
</head>
<body>
<table style="font-weight: bold">
<tr style="background-color:red"><td>a</td><td>b</td></tr>
<tr><td>1</td><td>2</td></tr>
</table>
</body>
</html>
난 다음 실행했음 북마크 on it.
javascript:window.open('data:application/vnd.ms-excel,'+document.documentElement.innerHTML);
i got it 엑셀 파일을 다운로드할 수 있으며, 사실 있다. 그러나 , 내가 받지 않았고, 예상되는 결과 - 파일 (OpenOffice.org) 에서 열려 기록기입니다. 그게 내 문제: 그래서 저는 Excel 이 없기 때문에 이 실험기계가 더 잘 할 수 없습니다. 또한, 이 전략은 6 년 전 이전 버전의 브라우저를 협력했습니다 늘리거나 줄일 수 있는 골동품 MS Office, 그래서 나는 정말 오늘 일 경우에는 말할 수 없다.
아무튼, 난 또 문서의 버튼 위에 있는 엑셀 파일을 다운로드 되는 전체 문서을 표시됨과 한다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Java Friends</title>
</head>
<body>
<table style="font-weight: bold">
<tr style="background-color:red"><td>a</td><td>b</td></tr>
<tr><td>1</td><td>2</td></tr>
<tr>
<td colspan="2">
<button onclick="window.open('data:application/vnd.ms-excel,'+document.documentElement.innerHTML);">
Get as Excel spreadsheet
</button>
</td>
</tr>
</table>
</body>
</html>
버튼을 클릭한 후 파일로 저장합니다. # 39 를 i& 다운로드되었는지 된다고 방관하겠나, 그래서 나는 그대에게; d love 대해서도 의견을 말하는 작동되지 않았다.
사용할 수 있다 [excel 2003년 기존 xml 형식으로] (http://blogs.msdn.com/b/brian_jones/archive/2005/06/27/433152.aspx) (전 오픈스믈) 문자열으로 클라이언트 측에서 원하는 대로 만들 수 있는 xml 데이터를 사용할 수 있습니다 다음 열어보려면 uri 를 사용하여 파일을 사용하여 클라이언트에 엑셀 파일을 전송하는 데 xsl mime 유형이거나 " mime 형식, 콘텐트 유형: application/vnd.ms-excel". 서버 측에서.
빈다우지오픈 (& # 39, & # 39, data:application/vnd.ms-excel +worksheet); & /script&, gt, lt;; < /code>; < /pre>;
눈여겨볼 만하다 나이든 브라우저를 지원하지 못하는 사람들을 위해 할 수 있습니다, 그래서 데이터 파일 서버 사이드 깔의 구성표가 URI 를 지원하지 않는 브라우저를 거잖나.
Base64 인코딩입니다 수행해야 할 수도 있습니다 데이터에 대한 URI 는 컨텐트나 할 수 있음 [js 라이브러리란] (http://www.stringify.com/2007/jun/18/base64/), # 39, & # 39 base64& 구체화하십시오 추가 아니라;; mime type 이후 데이터 uri 입니다.
Excel, 웹 queries" " 라는 기능이 거의 알려지지 있다. 거의 모든 데이터를 검색할 수 있는 웹 페이지를 추가 없이 프로그래밍.
Http 요청을 실행하는 쿼리하지 대성클리 Excel 에서 직접 웹 및 복제본에 일부 또는 전부를 워크시트의 데이터 (또는 서식) 를 받았다.
Excel 함으로써 특정 url 을 사용할 수도 있습니다 매개변수입니다 기준을 묻는 메시지가 필터링합니다 상술합니다.
그러나 그동안 단점 I& # 39, ve 인식할 수 있다.
Here 는 웹 쿼리합니다 작성하는방법에 에 대한 질문을 한다. 이 링크를 Microsoft 도움말에서는 사이트 정보 얻을 수 있는 웹 페이지의 외부 데이터 사용 방법
이것은 PHP이지만 자바스크립트로 변경할 수 있습니다:
<?php>
$colgroup = str_repeat("<col width=86>",5);
$data = "";
$time = date("M d, y g:ia");
$excel = "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns=\"http://www.w3.org/TR/REC-html40\">
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html>
<head>
<meta http-equiv=\"Content-type\" content=\"text/html;charset=utf-8\" />
<style id=\"Classeur1_16681_Styles\">
.xl4566 {
color: red;
}
</style>
</head>
<body>
<div id=\"Classeur1_16681\" align=center x:publishsource=\"Excel\">
<table x:str border=0 cellpadding=0 cellspacing=0 style=\"border-collapse: collapse\">
<colgroup>$colgroup</colgroup>
<tr><td class=xl2216681><b>Col1</b></td><td class=xl2216681><b>Col2</b></td><td class=xl2216681 ><b>Col3</b></td><td class=xl2216681 ><b>Col4</b></td><td class=xl2216681 ><b>Col5</b></td></tr>
<tr><td class=xl4566>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr>
</table>
</div>
</body>
</html>";
$fname = "Export".time().".xls";
$file = fopen($fname,"w+");
fwrite($file,$excel);
fclose($file);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'.basename($fname).'"');
readfile($fname);
unlink($fname); ?>
먼저 하는 것은 꼭 이래야겠어요 # 39 의 Html 과 익스포트합니다 추천합니까 기대한다 user& 인스턴스에서는 Excel 벨이 it up. 이 솔루션은 내 경험 등 엉뚱한 문제에 오류가 있는 파일은 Macintosh 클라이언트에서 사용자에게 질문을 던지며 호환되지 않는 문제가 있는 지정한 형식이 아닙니다. 서버 측 한 사용할 수 있는 가장 완벽한 친숙한 솔루션은 라리브러리 구축하기 위해 실제 엑셀 파일 및 보낼 백됩니다 사용자. 더 보편적인 솔루션을 사용할 수 있는 오픈 XML 포맷 및 다음 최선의 해결책이 될 수 있다. # 39 에 몇 번 i&, 드물게 호환성 문제가 있지만 전체적으로 실행하십시오 이전 버전의 Excel 에서 사용할 수 있는 솔루션을 포함한 모든 버전의 Excel mac 이 줘야 할 수 있습니다.
mizilla 그래도말야 지지기반을 64 uri. 바이너리 내용 javascript 를 사용하여 동적으로 작성할 수 있습니다.
<a href="data:application/vnd.ms-excel<base64 encoded binary excel content here>"> download xls</a>
엑셀 파일은 돌림무늬 별로 없는 경우 (no 다이어그램, 수식 마크로지스) 파일 형식 및 작성 바이트입니다 단축시킵니다 자세히 알고 싶다면 수 있습니다 다음, put them with base64 인코딩합니다 href 로그인하십시오.
) 은 다음과 같은 뜻이 있다. https://developer.mozilla.org/en/data_URIs
이 코드는 IE 만 디렉토리에만 알고 있기 때문에 유용한 상황에서 모든 사용자가 사용할 IE (like, 예를 들어, 일부 기업 환경이.)
<script Language="javascript">
function ExportHTMLTableToExcel()
{
var thisTable = document.getElementById("tbl").innerHTML;
window.clipboardData.setData("Text", thisTable);
var objExcel = new ActiveXObject ("Excel.Application");
objExcel.visible = true;
var objWorkbook = objExcel.Workbooks.Add;
var objWorksheet = objWorkbook.Worksheets(1);
objWorksheet.Paste;
}
</script>
사실 이것은 생각보다 간단합니다. "그냥" HTML 표(즉, 표의 HTML 코드)를 클립보드에 복사하기만 하면 됩니다. Excel은 HTML 표를 디코딩하는 방법을 알고 있으며 심지어 속성을 보존하려고 시도합니다.
어려운 부분은 자바스크립트에서 클립보드에 액세스할 수 있는 표준 방법이 없기 때문에 '표를 클립보드에 복사'하는 것입니다. 이 블로그 게시물을 참조하세요: 자바스크립트로 시스템 클립보드에 액세스하기 - 성배? 참조
이제 테이블을 HTML로 만들기만 하면 됩니다. jQuery와 html() 메서드를 추천합니다.
주어진 url 1.
변환을 수행할 수 있으며 클라이언트 측
시템의 윈도와 맥 os,
파이썬 코드를 갖고 있는 액세스하려면 ie 창을 열고 있다. url (& # 39, http://& # 39;) 가 테우를 변수
ie = Dispatch("InternetExplorer.Application")
ie.Visible = 1
ie.Navigate(theurl)
참고: 로그인 페이지의 경우 직접 입력하여 접근할 수 없습니다, 하지만 합니다 이 양식을 데이터 및 에뮬레이트 처리할 수 있는 사용자 액션에 파이썬
다음은 예
from win32com.client import Dispatch
ie.Document.all('username').value=usr
ie.Document.all('password').value=psw
같은 방식으로 데이터 검색 웹 페이지에서. # 39, & # 39 라고 let& el1& # 39 의 요소 (id; 데이터가 들어. 텍스트를 가변으로 요소점과 읽어들입니다
el1 = ie.Document.all('el1').value
데이터가 파이썬 가변으로 때 보라그들은 excel 화면 유사한 방식으로 파이썬 사용하여 열 수 있습니다.
from win32com.client import Dispatch
xlApp = Dispatch("Excel.Application")
xlWb = xlApp.Workbooks.Open("Read.xls")
xlSht = xlWb.WorkSheets(1)
xlSht.Cells(row, col).Value = el1
오직 팁: it 는 단순하고 유사물 API 로 디스패치하지 win32com.client AppleScript 사용
이 회사는 이를 위해 일할 자바드웨스트로보스 (핫 키 사용할 수 있습니다) 을 키를 linux*용 대해 잘 알고 있지만 아무도 apiu 작동할 수 있는 것처럼 간단한 AppleScript 제가.
단순한 google 검색 보기위해 이:
>. 실제로 만든 않은 데이터의 경우 html 페이지 및 ASP, PHP, 또는 다른 스크립팅 언어를 사용하는 인터넷 익스플로러 6, Excel 컴퓨터에 설치되어 있고, 간단히 마우스 오른쪽 버튼으로 페이지에서든 살펴보고 메뉴. Microsoft Excel.", 익스포트합니다 " 볼 수 있습니다. 만약 사실이라면, 이 모든 조건을 메뉴 항목을 클릭하고 및 it 에 임포트됩니다 후 몇 안내를 한다.
모든 브라우저에서 하나의 솔루션만 사용할 수 있지만 이 작업을 자동으로 수행하는 실질적인 두 가지 방법이 있습니다. 먼저, 엑셀 시트를 작성할 때 오픈 XML 사양을 사용해야 합니다. 이전 오피스 버전에서도 이 형식을 사용할 수 있도록 하는 Microsoft의 무료 플러그인이 있습니다. 오픈 XML은 Office 2007 이후 표준입니다. 서버 측 또는 클라이언트 측 두 가지 방법이 있습니다.
클라이언트 측 구현은 데이터에 대한 URL 대신 데이터를 저장할 수 있는 새로운 표준 CSS를 사용합니다. 서버 호출이 필요 없고 데이터와 자바스크립트만 있으면 되기 때문에 훌륭한 접근 방식입니다. 단점은 마이크로소프트가 현재 IE(IE9에 대해서는 잘 모르겠다) 릴리스에서 모든 부분을 지원하지 않는다는 것이다. Microsoft는 데이터를 이미지로 제한하지만 문서가 필요합니다. 파이어폭스에서는 꽤 잘 작동합니다. 저에게는 IE가 킬링 포인트였습니다.
다른 방법은 서버 측 구현을 사용하는 것입니다. 모든 언어에 대한 개방형 XML 구현이 많이 있을 것입니다. 하나만 파악하면 됩니다. 대부분의 경우 뷰모델을 수정하여 문서를 생성하는 것이 가장 간단한 방법이지만, 클라이언트 측의 모든 데이터를 서버로 다시 전송하여 동일한 작업을 수행할 수 있습니다.
function normalexport() {
try {
var i;
var j;
var mycell;
var tableID = "tblInnerHTML";
var drop = document.getElementById('<%= ddl_sections.ClientID %>');
var objXL = new ActiveXObject("Excel.Application");
var objWB = objXL.Workbooks.Add();
var objWS = objWB.ActiveSheet;
var str = filterNum(drop.options[drop.selectedIndex].text);
objWB.worksheets("Sheet1").activate; //activate dirst worksheet
var XlSheet = objWB.activeSheet; //activate sheet
XlSheet.Name = str; //rename
for (i = 0; i < document.getElementById("ctl00_ContentPlaceHolder1_1").rows.length - 1; i++) {
for (j = 0; j < document.getElementById("ctl00_ContentPlaceHolder1_1").rows(i).cells.length; j++) {
mycell = document.getElementById("ctl00_ContentPlaceHolder1_1").rows(i).cells(j);
objWS.Cells(i + 1, j + 1).Value = mycell.innerText;
// objWS.Cells(i + 1, j + 1).style.backgroundColor = mycell.style.backgroundColor;
}
}
objWS.Range("A1", "L1").Font.Bold = true;
// objWS.Range("A1", "L1").Font.ColorIndex = 2;
// objWS.Range("A1", "Z1").Interior.ColorIndex = 47;
objWS.Range("A1", "Z1").EntireColumn.AutoFit();
//objWS.Range("C1", "C1").ColumnWidth = 50;
objXL.Visible = true;
} catch (err) {
alert("Error. Scripting for ActiveX might be disabled")
return
}
idTmr = window.setInterval("Cleanup();", 1);
}
function filterNum(str) {
return str.replace(/[ / ]/g, '');
}