2009-10-06 7 views
1

자바 스크립트를 사용하여 웹 페이지에서 스프레드 시트로 XML 데이터를 내보내려고합니다. 지금까지 난 그냥 아주 간단한을 시도했다 : 그것은 잘못된 문자가 있기 때문에Javascript/classic-ASP를 사용하여 XML을 Excel 스프레드 시트로 내보내기

Sub Export 
    Response.ContentType = "application/vnd.ms-excel" 
    <script>    
     var XML = document.getElementById("xmldata");    
     window.open(XML); 
    </script> 
End Sub 

이 엑셀 스프레드 시트로 XML 파일을 열려고 시도는, 그러나 그것은 열리지 않습니다. 나는이 캐릭터들을 추적했고 주요 원인은 수평 대시 "-"인 경향이있다. 다른 잘못된 문자가있을 수 있지만 수동으로 제거하면 XML 파일이 제대로 열립니다.

XML 콘텐츠의 형식을 지정하여 유효하지 않은 문자를 제거하거나 바꿔 올바르게 표시하려면 어떻게해야합니까? XML 시트는 데이터베이스의 필드를 기반으로 작성되었으므로 XML 시트는 작성된 그대로 형식을 지정해야하며 그렇지 않으면 javascript로 형식을 지정해야합니까? 나는 웹 프로그래밍을 처음 접했을 때 가능한 가장 간단한 해결책을 찾으려고 노력하고있다. 또한 고전적인 ASP/VBscript를 사용하고 있습니다.

+0

질문의 코드는 전혀 의미가 없습니다. 실제로 코드는 무엇입니까? – AnthonyWJones

+0

아마도이 문제를 분명히해야하지만 예, 해당 코드를 무시하십시오. 웹 페이지 안에 XML 데이터 아일랜드가 있습니다. 이 XML 데이터를 가져 와서 Excel에 내보내고 여기에 포함 된 잘못된 문자를 삭제하려고합니다. – marekc

답변

1

는 다음 ActiveX를 사용하여 Excel로 그 퍼팅 XML 데이터에서 HTML 테이블 출력을 얻어서 그것을 해결하기 위해 관리.

var x=listingTable.rows 

var xls = new ActiveXObject("Excel.Application") 
xls.visible = true 
xls.Workbooks.Add 

for (i = 0; i < x.length; i++) 
{ 
    var y = x[i].cells 

    for (j = 0; j < y.length; j++) 
    { 
     xls.Cells(i+1, j+1).Value = y[j].innerTex 
    } 
} 
0

문자 인코딩이 일치하지 않습니다. 클라이언트가 UTF-8 문자 인코딩을 사용한다고 가정하고 있지만 서버에서 Windows-1252와 같은 ANSI 인코딩을 보내고 있습니다. 당신이있는 경우 또는

<?xml version="1.0" encoding="Windows-1252" ?> 

- :

당신은 클라이언트가 서버가 귀하의 XML의 시작 부분에 다음과 같은 당신이 서버 측 코드에 Response.CharSet = "Windows-1252"를 사용하여 Windows-1252를 보내고 포함되는 것을 알고 있는지 확인해야합니다 Response.Write를를 사용하면 사용할 수있는 XML 내용을 보내 : -

Response.Codepage = 65001 
Response.CharSet ="UTF-8" 
+0

제안 해 주셔서 감사합니다. XML 데이터 아일랜드를 사용하고 있기 때문에 XML 버전을 설정하고 인코딩 할 수 있다고 생각하지는 않습니다 (적어도 시도했을 때 저에게는 효과가 없었습니다). 그리고 액세스 할 수 있다고 생각하지 않습니다. VBscript의 데이터 아일랜드 (다시 말하지만 정확하지 않을 수도 있습니다 - 문자 그대로 웹 프로그래밍으로 뛰어 들었습니다) – marekc

관련 문제