2010-01-23 1 views
0

VB XML 리터럴을 반환하고 Excel XML 파일로 재생하고 있습니다. 문제는 첫 번째 줄에 <?xml version="1.0"?>이 포함되어있어 다운로드가되지 않습니다.누군가가 내 <? xml version = "1.0"을 먹고 있습니다.> Asp.net MVC에서 Excel XML을 반환합니다.

Public Class ReservasController 
Function Test() 
    Response.Clear() 
    Response.AddHeader("Content-Disposition", "attachment; filename=test.xml") 
    Response.ContentType = "application/vnd.ms-excel" 
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8") 
    Response.Write(GetXML()) 
    ''//This works: 
    ''//Response.Write("<?xml version=""1.0""?>" + GetXML().ToString()) 
    Response.End() 
    Return Nothing 
End Function 

은 GetXML 방법은 매우 간단하다 : 여기

코드입니다

Private Function GetXML() 
    Return <?xml version="1.0"?> 
      <?mso-application progid="Excel.Sheet"?> 
      <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
       xmlns:o="urn:schemas-microsoft-com:office:office" 
       xmlns:x="urn:schemas-microsoft-com:office:excel" 
       xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 
       xmlns:html="http://www.w3.org/TR/REC-html40"> 
       <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> 
        <Author>Bizcacha Excel Generator</Author> 
        <LastAuthor>Bizcacha Excel Generator</LastAuthor> 
        <Created>20100101</Created> 
        <Company>Bizcacha</Company> 
        <Version>1</Version> 
       </DocumentProperties> 
       <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> 
       </ExcelWorkbook> 
       <Styles> 
        <Style ss:ID="Default" ss:Name="Normal"> 
         <Alignment ss:Vertical="Bottom"/> 
         <Borders/> 
         <Font/> 
         <Interior/> 
         <NumberFormat/> 
         <Protection/> 
        </Style> 
       </Styles> 
       <Worksheet ss:Name="title"> 
        <Table x:FullColumns="1" x:FullRows="1" ss:DefaultRowHeight="15"> 
         <Column ss:Width="100"/> 
         <Column ss:Width="100"/> 
         <Row ss:AutoFitHeight="0"> 
          <Cell ss:StyleID="Default"><Data ss:Type="String">Hello</Data></Cell> 
          <Cell ss:StyleID="Default"><Data ss:Type="String">World</Data></Cell> 
         </Row> 
        </Table> 
       </Worksheet> 
      </Workbook> 
End Function 
End Class 

답변

-1

XML 리터럴을 처리하는 것이 어려워서 문자열 연결로 다시 이동했습니다.

1

그것을보고, 그것을 따옴표가 사용되는 문자열을 반환과 아무 상관이있다. ..why 예를 들어 ... "에 대한 ASCII 코드 대하 (34)와 그 따옴표를 대체하지 :

 
Const Char DblQuote As String = Chr(34) 

Private Function GetXML() 
    Return "<?xml version=" & DblQuote & "1.0" & DblQuote & "?>" & vbCrLf _ 
      & "<?mso-application progid=" & DblQuote & "Excel.Sheet" & DblQuote & "?>" & vbCrLf _ 

and so on... 

당신은 어떻게 생각하세요?

호프가 도움이 되었으면 안녕하세요, 탐.

+0

XML 리터럴을 사용하고 있습니다. 문자열을 연결할 필요가 없습니다. –

관련 문제