麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

ASP.NET使用xslt將xml轉換成Excel

2024-07-10 13:30:41
字體:
來源:轉載
供稿:網友

序:

  最近在給客戶做一個管理系統的時候,客戶提出要將查詢結果導出到Excel。對于還是實習生的我倍感壓力,于是找了點資料。網上有個示例,其中方法十分簡單。于是照貓畫虎,把方法和心得與大家分享。OK,Let`s go

第一步:

  創建一個Excel文件(就是 普通的Excel),在第一個單元格輸入“city”,然后選擇“另存為”,此時彈出保存窗口。注意:將保持格式選擇為“XML 表格(*.xml)”,點擊保存。完畢后用記事本打開這個Excel文件。你將看到如下的代碼

<?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>MC SYSTEM</Author><LastAuthor>MC SYSTEM</LastAuthor><Created>2009-05-28T16:20:57Z</Created><Company>MC SYSTEM</Company><Version>11.5606</Version></DocumentProperties><ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"><WindowHeight>11250</WindowHeight><WindowWidth>18180</WindowWidth><WindowTopX>120</WindowTopX><WindowTopY>75</WindowTopY><ProtectStructure>False</ProtectStructure><ProtectWindows>False</ProtectWindows></ExcelWorkbook><Styles><Style ss:ID="Default" ss:Name="Normal"><Alignment ss:Vertical="Center"/><Borders/><Font ss:FontName="宋體" x:CharSet="134" ss:Size="12"/><Interior/><NumberFormat/><Protection/></Style></Styles><Worksheet ss:Name="Sheet1"><Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" x:FullColumns="1"x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25"><Row ss:><Cell><Data ss:Type="String">org</Data></Cell></Row></Table><WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"><Unsynced/><Selected/><Panes><Pane><Number>3</Number><ActiveRow>3</ActiveRow><ActiveCol>1</ActiveCol></Pane></Panes><ProtectObjects>False</ProtectObjects><ProtectScenarios>False</ProtectScenarios></WorksheetOptions></Worksheet><Worksheet ss:Name="Sheet2"><Table ss:ExpandedColumnCount="0" ss:ExpandedRowCount="0" x:FullColumns="1"x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25"/><WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"><Unsynced/><ProtectObjects>False</ProtectObjects><ProtectScenarios>False</ProtectScenarios></WorksheetOptions></Worksheet><Worksheet ss:Name="Sheet3"><Table ss:ExpandedColumnCount="0" ss:ExpandedRowCount="0" x:FullColumns="1"x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25"/><WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"><Unsynced/><ProtectObjects>False</ProtectObjects><ProtectScenarios>False</ProtectScenarios></WorksheetOptions></Worksheet></Workbook>

  其實這個就是將XML轉換成Excel最關鍵的部分。實際上這就是Excel對應的XML格式。也就是說按照這個格式來寫一個XML文件,然后用Excel打開,Excel會將這個文件以Excel的樣子正確的現實出來。

第二步:

  在.net項目中添加一個xslt文件。學過xslt的朋友都知道通過xslt可以將xml轉換成其他的格式。可能有的朋友還沒有理解我的意思。其實我們通過xslt將xml轉換成“第一步”中的格式,然后保存或者輸出到客戶端就完成了導出Excel的功能了。

對于第一步中的XML代碼我們要進行一些修改,因為這是Excel自動生成的,其中包含了大量的無用信息。修改后的代碼如下:

<?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">  <Worksheet ss:Name="Sheet1">  <Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" x:FullColumns="1"    x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">    <Row ss:>      <Cell>      <Data ss:Type="String">        city <!--還記得嗎?這是第一步中輸入的city -->      </Data>     </Cell>    </Row>  </Table> </Worksheet> </Workbook>

到目前為止,這個代碼還沒有實際的用處。我們將這個代碼copy到創建的xslt文件中,并將xslt的一些語法加入到上面的代碼中,最后xslt文件將是這個樣子:

<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/">      <?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">   <Worksheet ss:Name="Sheet1">    <Table>      <xsl:for-each select="*">       <Row>        <Cell>        <Data ss:Type="String">          <xsl:value-of select="."/>        </Data>       </Cell>        <Cell>        <Data ss:Type="String">           <xsl:value-of select="."/>        </Data>       </Cell>      </Row>     </xsl:for-each>    </Table>  </Worksheet>  </Workbook>  </xsl:template></xsl:stylesheet>

保存這個xslt文件。

第三步:

編寫.net后臺代碼,我是通過一個按鈕事件觸發導出的。代碼如下:

private void button1_Click(object sender, EventArgs e){ XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml("<records><record><org>北京</org></record></records>"); XslCompiledTransform xct = new XslCompiledTransform(); xct.Load(Application.StartupPath+"//excel.xslt");  XmlTextWriter writer = new XmlTextWriter("output.xls", null); writer.WriteProcessingInstruction("xml", "version="1.0""); xct.Transform(xdoc, null,writer); writer.Close();}

 

總結:

其實這個方法的核心就是利用.net的xslt轉換功能將xml以一種特殊格式輸出出去。而這種格式可以利用Excel軟件自動生成


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美一级黄色免费看 | 亚洲综合网站 | 九色成人在线 | 99在线精品视频免费观看20 | 免费国产一级淫片 | 欧美成人三级大全 | 久久99精品久久久久久园产越南 | 国产女厕一区二区三区在线视 | 高潮娇喘嗯啊~文字 | 黄色一级片在线观看 | 欧美亚洲一区二区三区四区 | va视频在线 | 91,视频免费看 | 亚洲一区国产二区 | 久久av免费 | 成人免费看视频 | 线观看免费完整aaa 欧美在线一级 | 日本s级毛片免费观看 | 日韩在线毛片 | 国产三级国产精品国产普男人 | av在线久草 | 久久久一区二区精品 | 视频一区 中文字幕 | 最新黄色毛片 | jizzyouxxxx| 亚洲成人中文字幕在线 | 成年人在线视频 | 精品1 | 免费观看国产精品视频 | 欧美一级网 | 草碰人人| 成年免费网站 | 日本在线视频免费观看 | 香蕉成人在线视频 | 久久国产亚洲视频 | 涩涩操 | 亚洲成年人免费网站 | 毛片视频免费观看 | chinesegv男男猛男无套 | 91色综合综合热五月激情 | 国产福利视频在线观看 |