EXT.NET(十四)导出EXCEL

本文介绍使用EXT.NET实现导出Excel的具体步骤,包括XSL样式表定义、JavaScript交互及服务器端代码处理,并提供了一个完整的案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在运用EXT.NET过程中尝试了很多导出EXCEL的结果都失败了。

干脆就用DEMO中的案列吧。建立一个EXCEL.XSL

<xsl:stylesheet version="1.0" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <xsl:template match="/"> <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"> <xsl:apply-templates/> </Workbook> </xsl:template> <xsl:template match="/*"> <Worksheet> <xsl:attribute name="ss:Name"> <xsl:value-of select="local-name(/*/*)" /> </xsl:attribute> <Table x:FullColumns="1" x:FullRows="1"> <Row> <xsl:for-each select="*[position() = 1]/*"> <Cell> <Data ss:Type="String"> <xsl:value-of select="local-name()" /> </Data> </Cell> </xsl:for-each> </Row> <xsl:apply-templates/> </Table> </Worksheet> </xsl:template> <xsl:template match="/*/*"> <Row> <xsl:apply-templates/> </Row> </xsl:template> <xsl:template match="/*/*/*"> <Cell> <Data ss:Type="String"> <xsl:value-of select="." /> </Data> </Cell> </xsl:template> </xsl:stylesheet>


JS:

<script type="text/javascript"> var template = '<span style="color:{0};">{1}</span>'; var change = function (value) { return String.format(template, (value > 0) ? 'green' : 'red', value); } var pctChange = function (value) { return String.format(template, (value > 0) ? 'green' : 'red', value + '%'); } var exportData = function (format) { var store = GridPanel1.store; store.directEventConfig.isUpload = true; var records = store.reader.readRecords(store.proxy.data).records, values = []; for (i = 0; i < records.length; i++) { var obj = {}, dataR; if (store.reader.meta.id) { obj[store.reader.meta.id] = records[i].id; } dataR = Ext.apply(obj, records[i].data); if (!Ext.isEmptyObj(dataR)) { values.push(dataR); } } store.submitData(values); store.directEventConfig.isUpload = false; }; </script>

后台代码:

protected void Store1_Submit(object sender, StoreSubmitDataEventArgs e) { string format = "yyyyMMddhhss"; string name = "PO_Planning" + System.DateTime.Now.ToString(format) + ".xls"; XmlNode xml = e.Xml; this.Response.Clear(); this.Response.ContentType = "application/vnd.ms-excel"; this.Response.AddHeader("Content-Disposition", "attachment; filename="+name); XslCompiledTransform xtExcel = new XslCompiledTransform(); xtExcel.Load(Server.MapPath("Excel.xsl")); xtExcel.Transform(xml, null, Response.OutputStream); this.Response.End(); }

调用:

<ext:Button ID="btnxls" runat="server" Text="导出Excel" Icon="PageExcel"> <Listeners> <Click Handler="exportData('xls');" /> </Listeners> </ext:Button>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值