asp.net 按照table导出Excel问题

问题描述

项目中遇见一个问题,需要将数据导出成Excel文件,文件内容格式要和页面table显示的样式保持一致。自己因为方便便采用的是流保存的方式进行导出的。代码如下虽然达到了按照样式保存的效果,但是导出的Excel文件,在电脑上打开编辑保存时会提示,如下问题:保存后还会出现一个Excel的样式文件夹,如果把这个文件夹删除后,整个Excel就不能用了。要想正常使用这个Excel文档,必须在进行编辑之前,先要另存一份Excel后缀的文档,然后使用另存的文档才可以。这样给用户的感觉太不好了。我想各位大神,有没有能遇见过这样的问题的或者有没有更好的办法按照页面table样式导出Excel的。请大家多多指教呀SOS

解决方案

解决方案二:
Response.ContentType="application/ms-excel";//"application/ms-excel";//"application/vnd.ms-excel";Response.Clear();最好在导出之前加一句这个。试试
解决方案三:
tryit:
解决方案四:
你是用WPS打开的吧?用EXCEL打开好像不会有这样的问题。毕竟这样生成的文件不是真正的EXCEL,你可以用记事本打开你的文件看到的其实是HTML代码;但用记事本打开真正的EXCEL却是乱码。
解决方案五:
引用2楼insus的回复:

tryit:

您好,不是打开的问题,我就想是知道的如何通过既要保存页面的table样式,导出的时候还能生成真正的Excel,而不是HTML代码这样的。
解决方案六:
用GridView将数据导出到Excel进行格式化处理//绑定控件导出到Excel设置<tableborder="1"bordercolor="#bed0cd"cellpadding="0"cellspacing="0"><tr><tdstyle="font-weight:bold;font-size:11pt;text-align:center">将GridView中数据导出到Excel并进行格式化处理</td></tr><tr><td><asp:GridViewID="GridView1"runat="server"BackColor="White"BorderColor="#DEDFDE"BorderStyle="None"BorderWidth="1px"CellPadding="4"Font-Size="11pt"ForeColor="Black"GridLines="Vertical"AutoGenerateColumns="False"OnRowDataBound="GridView1_RowDataBound"><FooterStyleBackColor="#CCCC99"/><RowStyleBackColor="#F7F7DE"/><SelectedRowStyleBackColor="#CE5D5A"Font-Bold="True"ForeColor="White"/><PagerStyleBackColor="#F7F7DE"ForeColor="Black"HorizontalAlign="Right"/><HeaderStyleBackColor="#6B696B"Font-Bold="True"ForeColor="White"/><AlternatingRowStyleBackColor="White"/><Columns><asp:BoundFieldDataField="商品ID"HeaderText="商品ID"/><asp:BoundFieldDataField="商品名称"HeaderText="商品名称"/><asp:BoundFieldDataField="商品介绍"HeaderText="商品介绍"/><asp:BoundFieldDataField="商品价格"HeaderText="商品价格"/></Columns></asp:GridView></td></tr><tr><tdstyle="text-align:center"><asp:ButtonID="Button1"runat="server"Font-Size="9pt"OnClick="Button1_Click"Text="导出Excel并格式化"style="border-left-color:#3333ff;border-bottom-color:#3333ff;border-top-style:inset;border-top-color:#3333ff;border-right-style:inset;border-left-style:inset;border-right-color:#3333ff;border-bottom-style:inset"/></td></tr></table>//处理导出protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){bind();}}privatevoidExport(stringFileType,stringFileName){Response.Charset="GB2312";Response.ContentEncoding=System.Text.Encoding.UTF7;Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(FileName,Encoding.UTF8).ToString());Response.ContentType=FileType;this.EnableViewState=false;StringWritertw=newStringWriter();HtmlTextWriterhw=newHtmlTextWriter(tw);GridView1.RenderControl(hw);Response.Write(tw.ToString());Response.End();}privatevoidbind(){SqlDataAdaptermyda=newSqlDataAdapter("selecttop10GoodsIDas商品ID,GoodsNameas商品名称,GoodsIntroduceas商品介绍,GoodsPriceas商品价格fromtb_GoodsInfo",sqlcon);DataSetmyds=newDataSet();sqlcon.Open();myda.Fill(myds);sqlcon.Close();GridView1.DataSource=myds;GridView1.DataBind();}protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse){if(e.Row.RowType==DataControlRowType.DataRow){e.Row.Cells[3].Attributes.Add("style","vnd.ms-excel.numberformat:¥#,
解决方案七:
.00");}}
解决方案八:
用NPOI导出吧http://www.cnblogs.com/relax/p/3586355.html

时间: 2024-11-09 00:58:02

asp.net 按照table导出Excel问题的相关文章

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

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

asp.net mvc 实现导出excel表格功能怎么做?谢谢

问题描述 asp.net mvc 实现导出excel表格功能怎么做?谢谢 我在做asp.net mvc项目时,想将查询出来的数据 导出到excel表格,请问如何实现,请求具体的代码,谢谢 解决方案 参考在MVC中实现和网站不同服务器的批量文件下载以及NOPI下载数据到Excel的简单学习 (注:NOPI应为NPOI,一个开源的项目)

asp.net中Table生成Excel表格的方法_实用技巧

本文实例讲述了asp.net中Table生成Excel表格的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/19

ASP.NET使用GridView导出Excel实现方法_实用技巧

本文实例讲述了ASP.NET使用GridView导出Excel实现方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /// <summary>  /// 将DataTable数据导出到EXCEL,调用该方法后自动返回可下载的文件流  /// </summary>  /// <param name="dtData">要导出的数据源</param>  public static void DataTable1Excel(S

ASP.NET Core 导入导出Excel xlsx 文件实例_实用技巧

ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Linux和Mac. EPPlus.Core 是基于EPPlus 更改而来,在Linux 下需要安装libgdiplus . EPPlus:http://epplus.codeplex.com/ EPPlus.Core:https://github.com/VahidN/EPPlus.Core 下面在A

用ASP将数据读数导出EXCEL文件的四种方法

excel|导出excel|数据 作者:tonny 出自:伟网动力 http://www.weiw.com/如需转载,请写明出处. 作者序:这类知识点,在网上有很多,在此本人只是做一个总结. 一.用OWC什么是OWC? OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供 了灵活的同时也是最基本的机制.在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一 些功能强大的软件(如IE5和Office 2000

Asp.net中如何导出Excel文档(Gridview)

主要思路,通过GridView来导出文档.新建一个Aspx页面,页面创建GridView控件,后台绑定好数据源. 然后load中直接打印即可导出 前台的GridView <asp:GridView ID="GridView1" BorderColor="Black" runat="server" AutoGenerateColumns="False" Font-Size="12px" Width=&q

asp.net ajax下导出excel的解决办法

c#代码: protected void page_load(object sender, eventargs e) {         postbacktrigger trigger = new postbacktrigger();         trigger.controlid = "btn_export";         ((updatepanel)page.controls[0].findcontrol("updatepanel1")).trigger

asp.net拼接字符串导出excel问题

问题描述 代码如下:DataTabledt=DBAccess.GetDataTable("Test.GetJobsData",null);if(dt.Rows.Count>0){StringBuildersb=newStringBuilder();for(intj=0;j<dt.Columns.Count-1;j++){sb.Append(dt.Columns[j].ColumnName).Append("t");}sb.Append(dt.Column