Ext.NET 导出Excel时不认列

问题描述

我在将Ext.Net的GridPanel控件导出Excel文件时导出的Excel不认列,将一整行的数据都放在了一个单元格里面。方法是使用的Ext官方的例子。varsaveData=function(){GridData.setValue(Ext.encode(gvV_Wms_LocStock.getStore().reader.jsonData));}

前台页面<formid="form1"runat="server"><divrunat="server"id="div1"><ext:ResourceManagerID="resManager"runat="server"></ext:ResourceManager><ext:HiddenID="GridData"runat="server"/><ext:StoreID="store1"runat="server"OnRefreshData="str_RefreshData"AutoLoad="true"RemotePaging="true"RemoteSort="true"ShowWarningOnFailure="false"><Reader></Reader><Proxy><ext:PageProxy></ext:PageProxy></Proxy><SortInfoField="ID"Direction="DESC"/></ext:Store><ext:ViewportID="Viewport2"runat="server"Layout="FitLayout"><Items><ext:PanelHeader="false"ID="panQury"runat="server"Layout="FitLayout"AutoScroll="false"Border="false"><TopBar><ext:ToolbarID="toolMenu"runat="server"><Items><ext:ButtonID="btn_Print"Text="打印标签"Hidden="false"AutoPostBack="false"runat="server"Icon="Printer"><Listeners><ClickHandler="btn_Print_Click();"/></Listeners></ext:Button><ext:ButtonID="btn_Export"Text="导出"runat="server"IconCls="PageExcel"AutoPostBack="true"OnClick="ToExcel"><Listeners><ClickFn="saveData"/></Listeners></ext:Button><ext:ButtonID="btn_LS"Text="流水账"Hidden="false"AutoPostBack="false"runat="server"Icon="Find"><Listeners><ClickHandler="btn_Import_LS();"/></Listeners></ext:Button><ext:ButtonID="btn_TZ"Text="收发存明细表"Hidden="false"AutoPostBack="false"runat="server"Icon="Find"><Listeners><ClickHandler="btn_Import_TZ();"/></Listeners></ext:Button><ext:ButtonID="btn_HZ"Text="收发存汇总表"Hidden="false"AutoPostBack="false"runat="server"Icon="Find"><Listeners><ClickHandler="btn_Import_HZ();"/></Listeners></ext:Button><ext:ButtonID="btn_JD"Text="基地汇总表"Hidden="false"AutoPostBack="false"runat="server"Icon="Find"><Listeners><ClickHandler="btn_Import_JD();"/></Listeners></ext:Button></Items></ext:Toolbar></TopBar><Items><ext:GridPanelLayout="Fit"Header="false"Title="库位库存"Border="false"ID="gvV_Wms_LocStock"AutoWidth="true"TrackMouseOver="true"AutoExpandColumn="_Index"runat="server"StripeRows="true"StoreID="store1"><TopBar><ext:ToolbarCls="toolbar"><Content><uc1:QueryContrID="QueryContr"runat="server"/></Content></ext:Toolbar></TopBar><ColumnModel><Columns><%--<ext:ColumnHeader="Change"Width="75"DataIndex="change"/><ext:ColumnHeader="Pct.Change"Width="75"DataIndex="pctChange"/><ext:DateColumnHeader="LastUpdated"Width="85"DataIndex="lastChange"/>--%></Columns><Listeners></Listeners></ColumnModel><View><ext:LockingGridViewID="LockingGridView2"runat="server"/></View><DirectEvents></DirectEvents><SelectionModel><ext:RowSelectionModelID="RowSelectionModel1"runat="server"SingleSelect="false"><Listeners></Listeners></ext:RowSelectionModel></SelectionModel><Listeners></Listeners><LoadMaskShowMask="true"Msg="载入中..."/><SaveMaskShowMask="true"Msg="保存中..."/><BottomBar><ext:PagingToolbarID="pageTool"runat="server"PageSize="20"StoreID="store1"RefreshText="刷新"FirstText="首页"PrevText="上一页"NextText="下一页"LastText="尾页"EmptyMsg="暂时无您所需的数据,查询条件是否满足。"DisplayMsg="当前记录{0}-{1}条共{2}条记录"AutoHeight="true"AfterPageText="页,共{0}页"BeforePageText="第"><Items><ext:ComboBoxID="ComboBox2"runat="server"Width="80"><Items><ext:ListItemText="10"/><ext:ListItemText="20"/><ext:ListItemText="30"/><ext:ListItemText="50"/></Items><SelectedItemValue="20"/><Listeners><SelectHandler="#{pageTool}.pageSize=parseInt(this.getValue());#{pageTool}.doLoad();"/></Listeners></ext:ComboBox></Items></ext:PagingToolbar></BottomBar></ext:GridPanel></Items></ext:Panel></Items></ext:Viewport></div></form>

后台protectedvoidToExcel(objectsender,EventArgse){stringjson=GridData.Value.ToString();StoreSubmitDataEventArgseSubmit=newStoreSubmitDataEventArgs(json,null);XmlNodexml=eSubmit.Xml;this.Response.Clear();this.Response.ContentType="application/vnd.ms-excel";this.Response.AddHeader("Content-Disposition","attachment;filename=submittedData.xls");XslCompiledTransformxtExcel=newXslCompiledTransform();xtExcel.Load(Server.MapPath("Excel.xsl"));xtExcel.Transform(xml,null,this.Response.OutputStream);this.Response.End();}

XSL<xsl:stylesheetversion="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:templatematch="/"><Workbookxmlns="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:templatematch="/*"><Worksheet><xsl:attributename="ss:Name"><xsl:value-ofselect="local-name(/*/*)"/></xsl:attribute><Tablex:FullColumns="1"x:FullRows="1"><Row><xsl:for-eachselect="*[position()=1]/*"><Cell><Datass:Type="String"><xsl:value-ofselect="local-name()"/></Data></Cell></xsl:for-each></Row><xsl:apply-templates/></Table></Worksheet></xsl:template><xsl:templatematch="/*/*"><Row><xsl:apply-templates/></Row></xsl:template><xsl:templatematch="/*/*/*"><Cell><Datass:Type="String"><xsl:value-ofselect="."/></Data></Cell></xsl:template></xsl:stylesheet>

Store和GridPanel都是后台动态绑定的列。只剩下20分了求大神帮忙看看急在线等

解决方案

解决方案二:
是分少没人理么。。。。。
解决方案三:
http://www.cnblogs.com/sanshi/archive/2009/08/23/1552533.html
解决方案四:
你试试将GridPanel中的数据现在添加到一个DataTable里面for(inti=0;i<this.GridPanel.Columns.Count;i++){//将表头信息添加到DataTable表头dt2.Columns.Add(this.GridPanel.Columns[i].HeaderText);}for(inti=0;i<dt.Rows.Count;i++){dt2.Rows.Add(dt.Rows[i].ItemArray);//添加数据行}ToExcel(dt2);然后在publicvoidToExcel(DataTabledt){DataGriddgExcel=newDataGrid();dgExcel.DataSource=dt;dgExcel.DataBind();HttpContext.Current.Response.Charset="GB2312";stringfileName=HttpUtility.UrlEncode(Guid.NewGuid().ToString(),System.Text.Encoding.UTF8);stringstr="attachment;filename="+fileName+".xls";HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.UTF8;HttpContext.Current.Response.ContentType="application/ms-excel";HttpContext.Current.Response.AppendHeader("content-disposition",str);StringWritersw=newStringWriter();HtmlTextWriterhtmTextWriter=newHtmlTextWriter(sw);dgExcel.RenderControl(htmTextWriter);HttpContext.Current.Response.Write("<html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>");stringstyle="<style>td{mso-number-format:"\@";}</style>";//防止导出excel时将以0开头的全数字数据的0去掉HttpContext.Current.Response.Write(style);HttpContext.Current.Response.Write("</head><body>");HttpContext.Current.Response.Write(sw);HttpContext.Current.Response.Write("</body></html>");HttpContext.Current.Response.End();}

时间: 2024-11-02 13:47:37

Ext.NET 导出Excel时不认列的相关文章

excel导出-java导出excel时的数据换行问题

问题描述 java导出excel时的数据换行问题 java中做页面中表单的excel导出功能(表单数据通过sql查询),表单的其中一列是通过字符串的拼接形成的,为了页面的美观,在sql中拼接该字符串时,根据分隔号拼接标签,使其可以在页面上显示出多条记录分行的效果.但是由于excel导出用的sql和页面展示用的sql是同一句,因此在导出的excel中该列的显示会出现xxxxxxx的情况. 目前是处理方式是通过同样的方法拼接一个字段,但是不拼接,在页面显示中使用拼接了的,在导出时取的数据来自于不拼接

birt 导出excel时,有38个字段,导出的excel文件中数据都叠在一起,格式非常难看

问题描述 birt导出excel时,有38个字段,导出的excel文件中数据都叠在一起,格式非常难看,该问题怎么解决.thx 解决方案 解决方案二:给你看看我以前servlet导出Excel的例子publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("gbk");Employ

devexpress-DevExpress控件在导出Excel时怎么分成Sheet表来导出

问题描述 DevExpress控件在导出Excel时怎么分成Sheet表来导出 DevExpress控件在导出Excel时用的是 Printingsystem的导出ExportToXls方法导出的,只能将整个界面按一个Excel工作表来导出!! 界面上有三个grid(每一个加载一个界面作为数据控件),我想要做的是在导出的时候,每一个控件导出一个工作表,在一个Excel工作薄里面,,导出报表的格式按,控件显示的格式来,不知道各位大神有什么办法没有,,小弟在这里跪求了,,,谢谢每一位出主意的好心人

关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法

原文:关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法 上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认数字太长会转化为科学计数法,处理起来很简单,我们在导出时把数字转为字符串,Excel就不会识别为数字了,也就不会显示为科学计数方式. 我的处理方式是在变量后面加个空格,简单方便. $usercode .= ' '; $

asp.net2.0中导出EXCEL时内容为什么始终为空?[高分]

问题描述 asp.net2.0中导出EXCEL时内容为什么始终为空?实现方式,首先生成HTML摸板[格式如下,内容太长删除了一些]privateStringBuilderpHead=newStringBuilder();privateStringBuilderpBody=newStringBuilder();privateStringBuilderpFoot=newStringBuilder();publicRptSpareQuery(){pHead.Append("<htmlxmlns:

flex-【Flex as3xls】导出Excel时“001”变成1

问题描述 [Flex as3xls]导出Excel时"001"变成1 求具体操作代码,目前可以写入"'001",但是Excel并没有强制转换成文本形式显示. 解决方案 Flex导出Excel (as3xls)flash flex as3 类库 资料大全(看到此文时很激动...) 解决方案二: 自己加一下单元格格式为文本格式,或者加一个上逗号,一样的结果.

导出excel 时 只要不用下载工具迅雷直接下载一切正常,但当使用下载工具时导出的EXCEL就为空内容,

问题描述 导出excel时,我用这个下载:StringBuildersb=newStringBuilder();System.IO.StringWritersw=newSystem.IO.StringWriter(sb);System.Web.UI.HtmlTextWriterhw=newSystem.Web.UI.HtmlTextWriter(sw);Response.Clear();Response.Buffer=true;//Response.AppendHeader("Content-D

js导出excel时 为什么时间都变成######号了?谢谢指点!

问题描述 js导出excel时 为什么时间都变成解决方案二: 解决方案三:号了?谢谢指点! 解决方案 将excel显示时间的单元格宽度设置的宽一些就可以了.

数据集导出excel时进行重组

前阵子,一个同学让我分析两份数据以及一段Dephi编写的代码,他自己已初步实现了从数据集到Excel的导出,但没有实现换行以及出现了除第一列外其余列均缺少一行记录的问题.因此希望我帮忙完成将同时将一个生产单上的多个产品编码的配置情况导入到同一个excel中的算法.其初始数据(在数据集中)大体如下: 订单编号 名称 属性编码 属性值 0000001 A基础信息 功能 单功能 0000001 A基础信息 外观 WG 0000001 B结构技术要求 内部颜色 白色 0000001 B结构技术要求 外部