2010-01-23 3 views
0

Я играю с литералами VB XML для возвращения и Excel XML-файл. проблема заключается в том, что первая строка, содержащая <?xml version="1.0"?>, не загружается.Кто-то ест мою <? Xml version = "1.0"?> Возвращает Excel XML в Asp.net MVC

Вот код:

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 не заменить эти цитаты с Chr (34), который является ASCII код " ... в качестве примера:

 
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... 

Что вы думаете?

Надеюсь, это поможет, С уважением, Tom.

+0

Я использую XML-литералы. Нет необходимости конкатенировать строки. –

Смежные вопросы