濮阳杆衣贸易有限公司

主頁 > 知識庫 > ASP.NET使用xslt將xml轉(zhuǎn)換成Excel

ASP.NET使用xslt將xml轉(zhuǎn)換成Excel

熱門標(biāo)簽:臨沂智能電話機(jī)器人加盟 400電話辦理怎么樣 網(wǎng)絡(luò)電話外呼系統(tǒng)上海 地圖標(biāo)注軟件免費(fèi)下載 聯(lián)通官網(wǎng)400電話辦理 西寧呼叫中心外呼系統(tǒng)線路商 蘇州如何辦理400電話 百應(yīng)電話機(jī)器人外呼系統(tǒng) 外呼電話機(jī)器人成本

序:

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

第一步:

  創(chuàng)建一個Excel文件(就是 普通的Excel),在第一個單元格輸入“city”,然后選擇“另存為”,此時彈出保存窗口。注意:將保持格式選擇為“XML 表格(*.xml)”,點(diǎn)擊保存。完畢后用記事本打開這個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>

  其實(shí)這個就是將XML轉(zhuǎn)換成Excel最關(guān)鍵的部分。實(shí)際上這就是Excel對應(yīng)的XML格式。也就是說按照這個格式來寫一個XML文件,然后用Excel打開,Excel會將這個文件以Excel的樣子正確的現(xiàn)實(shí)出來。

第二步:

  在.net項(xiàng)目中添加一個xslt文件。學(xué)過xslt的朋友都知道通過xslt可以將xml轉(zhuǎn)換成其他的格式??赡苡械呐笥堰€沒有理解我的意思。其實(shí)我們通過xslt將xml轉(zhuǎn)換成“第一步”中的格式,然后保存或者輸出到客戶端就完成了導(dǎo)出Excel的功能了。

對于第一步中的XML代碼我們要進(jìn)行一些修改,因?yàn)檫@是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>

到目前為止,這個代碼還沒有實(shí)際的用處。我們將這個代碼copy到創(chuàng)建的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后臺代碼,我是通過一個按鈕事件觸發(fā)導(dǎo)出的。代碼如下:

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();

}

總結(jié):

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

您可能感興趣的文章:
  • asp.net導(dǎo)出EXCEL的功能代碼
  • asp.net DataGridView導(dǎo)出到Excel的三個方法[親測]
  • asp.net 讀取并顯示excel數(shù)據(jù)的實(shí)現(xiàn)代碼
  • ASP.NET操作EXCEL的總結(jié)篇
  • ASP.NET導(dǎo)出Excel打開時提示:與文件擴(kuò)展名指定文件不一致解決方法
  • asp.net生成Excel并導(dǎo)出下載五種實(shí)現(xiàn)方法
  • ASP.NET(C#)讀取Excel的文件內(nèi)容
  • asp.net使用npoi讀取excel模板并導(dǎo)出下載詳解
  • Asp.Net使用Npoi導(dǎo)入導(dǎo)出Excel的方法
  • asp.net中EXCEL數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫的方法

標(biāo)簽:慶陽 海西 甘肅 清遠(yuǎn) 聊城 臨夏 中衛(wèi)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET使用xslt將xml轉(zhuǎn)換成Excel》,本文關(guān)鍵詞  ASP.NET,使用,xslt,將,xml,轉(zhuǎn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET使用xslt將xml轉(zhuǎn)換成Excel》相關(guān)的同類信息!
  • 本頁收集關(guān)于ASP.NET使用xslt將xml轉(zhuǎn)換成Excel的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    临泽县| 颍上县| 尼勒克县| 济南市| 娱乐| 兰考县| 永城市| 墨竹工卡县| 侯马市| 巴马| 尤溪县| 海南省| 黔西| 碌曲县| 正阳县| 呼和浩特市| 仙桃市| 饶平县| 搜索| 任丘市| 屯留县| 海口市| 沙河市| 宁武县| 芜湖市| 岳普湖县| 沙田区| 台湾省| 甘孜县| 长兴县| 海门市| 锡林浩特市| 佳木斯市| 会昌县| 格尔木市| 潮安县| 长乐市| 芷江| 周至县| 武山县| 沧源|