`

web导出excel格式问题

 
阅读更多
当我们把web页面上的数据导成excel形式时,有时候我们的数据需要以特定的格式呈现出来,这时候我们就需要给cell添加一些样式规格信息。

       首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式:

1) 文本:vnd.ms-excel.numberformat:@

2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd

3) 数字:vnd.ms-excel.numberformat:#,##0.00

4) 货币:vnd.ms-excel.numberformat:¥#,##0.00

5) 百分比:vnd.ms-excel.numberformat: #0.00%

这些格式你也可以自定义,比如年月你可以定义为:yy-mm等等。那么知道了这些格式,怎么去把这些格式添加到cell中呢?很简单,我们只需要把样式添加到对应的标签对(即闭合标签)即可。如<td></td>,给标签对<td></td>添加样式,如下:


<td style="vnd.ms-excel.numberformat:@">410522198402161833</td>


同样,我们也可以给<div></div>添加样式,也可以给<tr></tr>,<table></table>添加样式,这样就会引入一个问题,你注意到了吗?先看如下的代码:



<table style=’vnd.ms-excel.numberformat:#,##0.00’>
    <tr>
        <td>542</td>
        <td style=’vnd.ms-excel.numberformat: #0.00%’>0.25</td>
    </tr>
</table>



对,当我们在父标签对和子标签对都添加样式时,数据会以哪一个样式呈现呢?经过测试,会以离数据最近的样式呈现,这也是符合我们的意愿的(好像也符合一句俗话:县官不如现管)。这样我们就可以通过改变样式而改变数据在excel中呈现的方式(这些样式规格你可以在前台页面上添加也可以在后台代码里给相应的控件如:DataGrid等添加这些样式)。如果你的应用比较简单,那么这已经足够满足你的需求。但如果你的应用比较复杂,那么你也可以采取一种方式来达到不同的数据呈现效果。下面,我就举一个稍微复杂一点的应用。

       例如:你的数据要呈现给不同国家和地区的用户查看,这样数据的呈现的格式就会不一样,那么我们怎么解决这个问题呢?当然了,你可以手工把这些数据处理好,但这毕竟不是最好的方法,因为如果我们每增加一个其他国家或地区的用户,那么我们就需要把所有的数据以客户要求的格式处理一遍,当数据量很大时,这无疑是一件很沉重且无聊的工作。那么我们究竟应该怎样解决类似这样的问题呢?下面我说一下,我自己的看法:把这些格式化的信息抽取到一个xml文件中,程序运行时根据不同的客户读取不同的格式化信息,然后把这些格式化信息动态的添加到我们的数据上,这样,当我们每增加一个其他国家或地区的用户时,我们只需要多增加一个xml文件,把对应的格式化信息写入这个xml文件,然后当这个国家或地区的用户查看时,就把对应的格式化信息读取出来应用到数据上即可。

       以上这个例子是我突然想到的,相信跨国企业的公司会遇到类似的问题,解决方法只是提供给大家一个思路,希望可以起到抛砖引玉的效果。

DataGrid:


Asp.Net WebForm中DataGrid导出的时候,在ItemDataBound内

if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
{ 
e.Item.Cells[0].Attributes.Add("style","vnd.ms-excel.numberformat:@"); 
} 




如果在WinForm内则可以
Excel.Range range = (Excel.Range)worksheet.Cells[1,1]; 
range.NumberFormat = Excel.XlParameterDataType.xlParamTypeUnknown; 

VB:


 If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
            e.Item.Cells(1).Attributes.Add("style", "vnd.ms-excel.numberformat:@")
        End If





如果是Label,则在<td>的style中加上:


<td style="height: 22px; vnd.ms-excel.numberformat:@" bgcolor="#eff3fb">
     <asp:Label ID="Label2"  runat="server" Text="Label"></asp:Label></td>


如果是Gridview,(07.12.13 Update)
则需要在后台打印click事件代码中加两句话:

//  More Codes


string style = @"<style> .text { mso-number-format:\@; } </script> "; 

Response.Write(style); 

Response.Output.Write(oStringWriter.ToString());


分享到:
评论

相关推荐

    Web导出Excel(可以运行的)

    在这个案例中,Apache POI用于创建和编辑Excel工作簿、工作表以及单元格,从而实现从Web应用导出数据到Excel的功能。 2. **Excel样式设置**: 文件描述中提到,生成的Excel文件包含各种样式,如标题的字体大小、...

    web 导出EXCEL

    4. **优化导出格式**:为了提高导出速度,可以选择导出CSV或TSV格式,它们比Excel格式更轻量且兼容性好。用户可以轻松用Excel打开并转换为工作簿。 5. **处理数据过滤和聚合**:在导出前对数据进行过滤和聚合,降低...

    NOPI导出EXCEL/xls/xlsx并输出到WEB页面

    标题 "NOPI导出EXCEL/xls/xlsx并输出到WEB页面" 描述的是一个使用NOPI(可能是某种特定的开发框架或库)处理Excel文件并将其数据展示在Web页面上的过程。NOPI允许开发者执行Excel文件的导入、导出以及下载功能,同时...

    web导出Excel笔记

    ### Web导出Excel知识点 #### 一、导出原理与技术栈 在Web开发中,经常需要将数据导出为Excel格式,以便于用户下载或进一步处理。这涉及到多个技术点,包括前端触发导出操作、后端处理数据并生成Excel文件等。本文...

    web 导出Excel不依懒com组件

    在Web开发中,经常需要处理的数据最终以Excel格式呈现给用户。传统的方式通常依赖于COM组件来实现Excel的生成与导出,这种方式不仅增加了系统的复杂度,还可能导致安全性和跨平台兼容性问题。本篇文章将详细介绍一种...

    ssh整合web导出excel案例

    - **Action**:处理用户的导出请求,调用Service层的方法,将数据转换为Excel格式并返回给客户端。 - **Service**:实际导出Excel的逻辑实现,可能包括处理中文乱码问题,创建并填充Excel文件的I/O流操作。 - **...

    C# winform/web导出EXCEL

    在C#编程环境中,开发Windows桌面应用(Winform)或Web应用时,有时我们需要实现将数据导出到Excel的功能。标题“C# winform/web导出EXCEL”所涵盖的知识点主要涉及如何在不依赖Microsoft Office组件的情况下,利用...

    lodop导出ExcelDemo

    总的来说,"lodop导出ExcelDemo"是一个利用LODOP组件和JavaScript技术,实现Web应用中数据便捷导出为Excel格式的实例。这个功能对于那些需要在浏览器环境下处理大量数据的用户来说非常实用,简化了数据管理流程,...

    java导出excel 在web项目

    Java导出Excel在Web项目中的应用是一个常见的需求,特别是在企业级开发中,为了方便数据的存储、分析和传输,往往需要将数据库中的数据导出为Excel格式。下面将详细介绍这个主题,包括相关技术和实现步骤。 1. **...

    WEB页面打印excel报表

    在网页上打印Excel报表是Web应用中常见的需求,特别是在数据展示和分析的场景下。本文将详细介绍如何在WEB页面上实现Excel报表的打印,通过一个简单的示例来帮助开发者理解和应用这一技术。 首先,我们需要理解Web...

    Web(C#)导出Excel文档

    在Web开发中,使用C#语言进行Excel文档的导出是一项常见的需求,特别是在数据分析、报表生成和数据交换等场景。本示例主要介绍如何利用C#在.NET框架下实现Web应用导出Excel的功能。 首先,我们需要理解Web应用程序...

    jquery 导出excel方法

    当需要将数据从网页导出为Excel格式时,jQuery提供了多种方法来实现这一功能。下面将详细介绍jQuery导出Excel的方法,以及相关知识点。 1. **jQuery插件:TableExport** 文件`tableExport.jquery.plugin-a891806`...

    将数据导成excel

    Struts2是一个流行的Java web开发框架,它提供了丰富的功能来处理用户请求并返回响应,包括导出数据到Excel。 首先,我们来看`ImportEmployee.java`。这个文件可能包含了用于处理导入员工数据的类。在Struts2中,...

    js导出excel.zip

    这一功能对于那些需要处理大量数据并希望以Excel格式存储的Web应用程序来说,是非常实用的。在实际开发中,开发者可以参考压缩包内的代码,理解其工作原理,并根据项目需求进行适当的调整和扩展。

    导出Excel功能,导出Excel功能,导出Excel功能

    11. **Web应用集成**:在Web应用程序中,通常通过CSV或Excel文件下载链接来实现导出,利用浏览器的“另存为”功能。也可以使用前端库如FileSaver.js来控制文件下载。 12. **文件压缩**:为了减少文件大小和加快传输...

    将web页面中的数据导出到EXCEL并自动打印

    本文将详细讲解如何实现“将Web页面中的数据导出到Excel并自动打印”的技术流程。 首先,我们需要理解Web页面数据导出到Excel的基本原理。通常,这涉及到JavaScript或服务器端语言(如Python、Java、PHP等)的配合...

    WEB页面导出为EXCEL文档的方法

    - Node.js:使用`exceljs`或`xlsx`库,同样可以实现从网页数据到Excel的转换。 4. **Internet Explorer设置问题**: 描述中提到的“Automation 服务器不能创建对象”错误可能与IE的安全设置有关。解决方法是: -...

    FLEX导出EXCEL支持合并隐藏单元格

    4. **隐藏**:隐藏单元格指的是在导出到Excel时,可以选择性地不显示某些单元格中的数据。这可能是因为这些数据对最终用户不重要,或者是出于隐私保护的考虑。 MXML代码解析: MXML是Flex应用的主要标记语言,用于...

    web页面嵌入excel控件,网页中在线编辑EXCEL表格实例

    4. **权限与安全**:嵌入Excel控件可能涉及到用户数据的安全问题,因此必须确保用户明确知道他们正在使用此功能,并且可能需要相应的权限设置以防止恶意代码执行。 5. **交互与API**:一旦控件在网页中加载,可以...

    Grid导出到Excel例子(源码+注释)

    在本示例中,我们将探讨如何将Grid的数据导出到Excel格式,这对于数据分析、报告生成和数据共享非常实用。源码与注释的提供使得学习过程更加直观和高效。 首先,我们要了解Grid组件。Grid通常由ExtJS库提供,它是一...

Global site tag (gtag.js) - Google Analytics