Ext.Net 1.x_Ext.Net.GridPanel之导出EXCEL
2011-12-12 08:13
519 查看
在运用EXT.NET过程中尝试了很多导出EXCEL的结果都失败了。
干脆就用DEMO中的案列吧。建立一个EXCEL.XSL
JS:
后台代码:
调用:
干脆就用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>
相关文章推荐
- Ext.NET的GridPanel导出Excel
- Ext.net1.0之GridPanel数据导出Excel
- Ext.Net 1.x_Ext.Net.GridPanel之导出EXCEL
- Ext gridPanel 导出到Excel
- Ext gridPanel 导出到Excel 2
- 导出Ext.grid.Panel到excel
- 导出Ext.grid.Panel到excel
- ext的grid导出为excel 方法
- Ext.Net 1.x_Ext.Net.GridPanel RowExpander运用案列
- 关于ASP.NET中将Grid导出到EXCEL乱码的问题
- Ext.Net 1.x_Ext.Net.GridPanel之Filters 过滤数据
- EXT.NET Toolbar GridPanel主动宽度和高度的解决规划,引入Viewport
- Ext.Net 1.x_Ext.Net.GridPanel合并列头与动态修改列头
- Ext.Net 1.2.0_增删改 Ext.Net.GridPanel
- Ext.Net 1.x_Ext.Net.GridPanel RowExpander运用案列
- ASP.NET的GridView在UpdatePanel里导出Excel的语句
- Ext.Net 1.x_Ext.Net.GridPanel合并列头与动态修改列头
- ligerui中grid导出为Excel的例子(asp.net)
- Ext.net开发中一些功能(1)--Gridpanel上插入超链接
- ligerui中grid导出为Excel的例子(asp.net)