(转)ASP.NET读出XML数据生成Excel

概要描述:读取XML数据,最终生成Excel数据。
一.新建一个book.xml,代码内容如下:

 1 None.gif <? xml version="1.0" encoding="utf-8"  ?>
 2 None.gif < bookstore  xmlns ="http://tempuri.org/Book.xsd" >
 3 None.gif   < book  genre ="autobiography"  publicationdate ="1981"  ISBN ="1-861003-11-0" >
 4 None.gif     < title > C# Program </ title >
 5 None.gif     < author >
 6 None.gif       < first-name > Wang </ first-name >
 7 None.gif       < last-name > Lei </ last-name >
 8 None.gif     </ author >
 9 None.gif     < price > 10 </ price >
10 None.gif   </ book >
11 None.gif   < book  genre ="novel"  publicationdate ="1967"  ISBN ="0-201-63361-2" >
12 None.gif     < title > VB.Net Program </ title >
13 None.gif     < author >
14 None.gif       < first-name > James </ first-name >
15 None.gif       < last-name > Wang </ last-name >
16 None.gif     </ author >
17 None.gif     < price > 8 </ price >
18 None.gif   </ book >
19 None.gif   < book  genre ="philosophy"  publicationdate ="1991"  ISBN ="1-861001-57-6" >
20 None.gif     < title > Sql server 2005 database manager </ title >
21 None.gif     < author >
22 None.gif       < first-name > Elvis </ first-name >
23 None.gif       < last-name > Yu </ last-name >
24 None.gif     </ author >
25 None.gif     < price > 5 </ price >
26 None.gif   </ book >
27 None.gif </ bookstore >
二.新建一个Default.aspx的页面,在Default.aspx页面上拖放一个按钮,双击进入按钮的事件,代码如下:
  1 None.gif using  System;
  2 None.gif using  System.Data;
  3 None.gif using  System.Configuration;
  4 None.gif using  System.Web;
  5 None.gif using  System.Web.Security;
  6 None.gif using  System.Web.UI;
  7 None.gif using  System.Web.UI.WebControls;
  8 None.gif using  System.Web.UI.WebControls.WebParts;
  9 None.gif using  System.Web.UI.HtmlControls;
 10 None.gif using  System.IO;
 11 None.gif
 12 None.gif public  partial  class  _Default : System.Web.UI.Page 
 13 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 14InBlock.gif    protected void Page_Load(object sender, EventArgs e)
 15ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 16InBlock.gif
 17ExpandedSubBlockEnd.gif    }

 18InBlock.gif    protected void Button1_Click(object sender, EventArgs e)
 19ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 20InBlock.gif        try
 21ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
 22InBlock.gif            //要转换的XML文件
 23InBlock.gif            string XMLFileName = Path.Combine(Request.PhysicalApplicationPath, "book.xml");
 24InBlock.gif            DataSet dsBook = new DataSet();
 25InBlock.gif            dsBook.ReadXml(XMLFileName);
 26InBlock.gif            int rows = dsBook.Tables[0].Rows.Count + 1;
 27InBlock.gif            int cols = dsBook.Tables[0].Columns.Count;
 28InBlock.gif
 29InBlock.gif            //将要生成的Excel文件
 30InBlock.gif            string ExcelFileName = Path.Combine(Request.PhysicalApplicationPath, "book.xls");
 31InBlock.gif            if (File.Exists(ExcelFileName))
 32ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 33InBlock.gif                File.Delete(ExcelFileName);
 34ExpandedSubBlockEnd.gif            }

 35InBlock.gif            StreamWriter writer = new StreamWriter(ExcelFileName, false);
 36InBlock.gif            writer.WriteLine("<?xml version=\"1.0\"?>");
 37InBlock.gif            writer.WriteLine("<?mso-application progid=\"Excel.Sheet\"?>");
 38InBlock.gif            writer.WriteLine("<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"");
 39InBlock.gif            writer.WriteLine(" xmlns:o=\"urn:schemas-microsoft-com:office:office\"");
 40InBlock.gif            writer.WriteLine(" xmlns:x=\"urn:schemas-microsoft-com:office:excel\"");
 41InBlock.gif            writer.WriteLine(" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\"");
 42InBlock.gif            writer.WriteLine(" xmlns:html=\"http://www.w3.org/TR/REC-html40/\">");
 43InBlock.gif            writer.WriteLine(" <DocumentProperties xmlns=\"urn:schemas-microsoft-com:office:office\">");
 44InBlock.gif            writer.WriteLine("  <Author>Automated Report Generator Example</Author>");
 45InBlock.gif            writer.WriteLine(string.Format("  <Created>{0}T{1}Z</Created>", DateTime.Now.ToString("yyyy-mm-dd"), DateTime.Now.ToString("HH:MM:SS")));
 46InBlock.gif            writer.WriteLine("  <Company>Your Company Here</Company>");
 47InBlock.gif            writer.WriteLine("  <Version>11.6408</Version>");
 48InBlock.gif            writer.WriteLine(" </DocumentProperties>");
 49InBlock.gif            writer.WriteLine(" <ExcelWorkbook xmlns=\"urn:schemas-microsoft-com:office:excel\">");
 50InBlock.gif            writer.WriteLine("  <WindowHeight>8955</WindowHeight>");
 51InBlock.gif            writer.WriteLine("  <WindowWidth>11355</WindowWidth>");
 52InBlock.gif            writer.WriteLine("  <WindowTopX>480</WindowTopX>");
 53InBlock.gif            writer.WriteLine("  <WindowTopY>15</WindowTopY>");
 54InBlock.gif            writer.WriteLine("  <ProtectStructure>False</ProtectStructure>");
 55InBlock.gif            writer.WriteLine("  <ProtectWindows>False</ProtectWindows>");
 56InBlock.gif            writer.WriteLine(" </ExcelWorkbook>");
 57InBlock.gif            writer.WriteLine(" <Styles>");
 58InBlock.gif            writer.WriteLine("  <Style ss:ID=\"Default\" ss:Name=\"Normal\">");
 59InBlock.gif            writer.WriteLine("   <Alignment ss:Vertical=\"Bottom\"/>");
 60InBlock.gif            writer.WriteLine("   <Borders/>");
 61InBlock.gif            writer.WriteLine("   <Font/>");
 62InBlock.gif            writer.WriteLine("   <Interior/>");
 63InBlock.gif            writer.WriteLine("   <Protection/>");
 64InBlock.gif            writer.WriteLine("  </Style>");
 65InBlock.gif            writer.WriteLine("  <Style ss:ID=\"s21\">");
 66InBlock.gif            writer.WriteLine("   <Alignment ss:Vertical=\"Bottom\" ss:WrapText=\"1\"/>");
 67InBlock.gif            writer.WriteLine("  </Style>");
 68InBlock.gif            writer.WriteLine(" </Styles>");
 69InBlock.gif            writer.WriteLine(" <Worksheet ss:Name=\"MyReport\">");
 70ExpandedSubBlockStart.gifContractedSubBlock.gif            writer.WriteLine(string.Format("  <Table ss:ExpandedColumnCount=\"dot.gif{0}\" ss:ExpandedRowCount=\"dot.gif{1}\" x:FullColumns=\"1\"", cols.ToString(), rows.ToString()));
 71InBlock.gif            writer.WriteLine("   x:FullRows=\"1\">");
 72InBlock.gif            //生成标题
 73InBlock.gif            writer.WriteLine("<Row>");
 74InBlock.gif            foreach (DataColumn eachCloumn in dsBook.Tables[0].Columns)
 75ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 76InBlock.gif                writer.Write("<Cell ss:StyleID=\"s21\"><Data ss:Type=\"String\">");
 77InBlock.gif                writer.Write(eachCloumn.ColumnName.ToString());
 78InBlock.gif                writer.WriteLine("</Data></Cell>");
 79ExpandedSubBlockEnd.gif            }

 80InBlock.gif            writer.WriteLine("</Row>");
 81InBlock.gif
 82InBlock.gif            //生成数据记录
 83InBlock.gif            foreach (DataRow eachRow in dsBook.Tables[0].Rows)
 84ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 85InBlock.gif                writer.WriteLine("<Row>");
 86InBlock.gif                for (int currentRow = 0; currentRow != cols; currentRow++)
 87ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 88InBlock.gif                    writer.Write("<Cell ss:StyleID=\"s21\"><Data ss:Type=\"String\">");
 89InBlock.gif                    writer.Write(eachRow[currentRow].ToString());
 90InBlock.gif                    writer.WriteLine("</Data></Cell>");
 91ExpandedSubBlockEnd.gif                }

 92InBlock.gif                writer.WriteLine("</Row>");
 93ExpandedSubBlockEnd.gif            }

 94InBlock.gif            writer.WriteLine("  </Table>");
 95InBlock.gif            writer.WriteLine("  <WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\">");
 96InBlock.gif            writer.WriteLine("   <Selected/>");
 97InBlock.gif            writer.WriteLine("   <Panes>");
 98InBlock.gif            writer.WriteLine("    <Pane>");
 99InBlock.gif            writer.WriteLine("     <Number>3</Number>");
100InBlock.gif            writer.WriteLine("     <ActiveRow>1</ActiveRow>");
101InBlock.gif            writer.WriteLine("    </Pane>");
102InBlock.gif            writer.WriteLine("   </Panes>");
103InBlock.gif            writer.WriteLine("   <ProtectObjects>False</ProtectObjects>");
104InBlock.gif            writer.WriteLine("   <ProtectScenarios>False</ProtectScenarios>");
105InBlock.gif            writer.WriteLine("  </WorksheetOptions>");
106InBlock.gif            writer.WriteLine(" </Worksheet>");
107InBlock.gif            writer.WriteLine(" <Worksheet ss:Name=\"Sheet2\">");
108InBlock.gif            writer.WriteLine("  <WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\">");
109InBlock.gif            writer.WriteLine("   <ProtectObjects>False</ProtectObjects>");
110InBlock.gif            writer.WriteLine("   <ProtectScenarios>False</ProtectScenarios>");
111InBlock.gif            writer.WriteLine("  </WorksheetOptions>");
112InBlock.gif            writer.WriteLine(" </Worksheet>");
113InBlock.gif            writer.WriteLine(" <Worksheet ss:Name=\"Sheet3\">");
114InBlock.gif            writer.WriteLine("  <WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\">");
115InBlock.gif            writer.WriteLine("   <ProtectObjects>False</ProtectObjects>");
116InBlock.gif            writer.WriteLine("   <ProtectScenarios>False</ProtectScenarios>");
117InBlock.gif            writer.WriteLine("  </WorksheetOptions>");
118InBlock.gif            writer.WriteLine(" </Worksheet>");
119InBlock.gif            writer.WriteLine("</Workbook>");
120InBlock.gif            writer.Close();
121InBlock.gif            Response.Write("<script language=\"javascript\">" + "alert('" + "转换成功! 转换后的Excel文件名为: " + ExcelFileName + "')" + "</script>");
122ExpandedSubBlockEnd.gif        }

123InBlock.gif        catch (Exception ex)
124ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
125InBlock.gif            Response.Write("<script language=\"javascript\">" + "alert('" + "操作失败! 出错信息: " + ex.Message + "')" + "</script>");
126ExpandedSubBlockEnd.gif        }

127ExpandedSubBlockEnd.gif    }

128ExpandedBlockEnd.gif}

129 None.gif
文章转载: http://blog.youkuaiyun.com/chengking/archive/2006/08/10/1045853.aspx

转载于:https://www.cnblogs.com/morningwang/archive/2007/05/30/765057.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值